minimalcode / php-java-optional
PHP对Java9 Optional的实现
v1.0.8RC
2017-06-23 22:00 UTC
Requires
- php: >=5.5
Requires (Dev)
- phpunit/phpunit: 4.8.*
README
Java-9 Optional的PHP实现,支持泛型
特性
- 完全1:1实现Java-9 Optional API
- 泛型支持(概念上,显然),用于对象和原始数据类型
OptionalBool
、OptionalFloat
、OptionalInt
、OptionalString
已可用- 只有1个类,针对性能优化
- 适用于生产环境
使用方法
echo OptionalString::of('hello')->orElse('world');// echo 'hello' echo OptonalInt::ofNullable(null)->orElse(42);// echo 42
泛型
/** * @method Book get() * @method Book|null orElse($other) * @method Book orElseGet(callable $supplier) * @method Book orElseThrow(callable $exceptionSupplier) */ class OptionalBook extends AbstractOptional { /** * @inheritdoc */ protected function supports($value) { return $value instanceof Book; } } $book = new Book() $optBook = OptionalBook::of($book);
http://download.java.net/java/jdk9/docs/api/java/util/Optional.html
https://www.mkyong.com/java8/java-8-optional-in-depth/
http://blog.codefx.org/java/dev/java-9-optional/
http://iteratrlearning.com/java9/2016/09/05/java9-optional.html