hg: jdk8/tl/jdk: 8001642: Add Optional, OptionalDouble, OptionalInt, OptionalLong (original) (raw)
Mike Duigou mike.duigou at oracle.com
Wed Mar 20 05:11:03 UTC 2013
- Previous message: hg: jdk8/tl/jdk: 8001642: Add Optional, OptionalDouble, OptionalInt, OptionalLong
- Next message: hg: jdk8/tl/langtools: 8010361: fix some langtools findbugs issues
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Mar 19, 2013, at 9:43 PM, Rob Leland <the.rob.leland at gmail.com> wrote:
Has the optional classes been verified to serialize/deserialize correctly? I noticed it tries to use the null object pattern with the use of EMPTY private instance. When I have implemented the NULL pattern I have used a private subclass of the object as opposed to an instance variable to insure it unmarshalls correctly with a simple override of the default desearization to insure this. They are not tagged as Serializable. Optionals are intended to be transitory. A readResolve to re-associate with the EMPTY instance would be important if they were serializable. I also wonder why a marker interface wasn't used or something more substantial at least for methods like isPresent(). I am not sure what you are looking for in this question. Also why does the static factory initialization parameters use primatives as opposed to objects? The OptionalInt etc are intended to be Optional counterparts to the boxed types. If you prefer Optional of the boxed types you can use the reference Optional. If objects were used then there would be the oppertunity to use a abstract base class, which has the potential to move the use of isPresent() strictly into the base class.
Finally, are these utilities critical to some other part JDK 8 that they were pushed out now as opposed to JDK 9? They are currently planned for use by the lambda streams libraries. See http://openjdk.java.net/projects/lambda/ and http://jdk8.java.net/lambda/ for more info and an implementation.
Mike
On Mar 19, 2013 7:18 PM, <mike.duigou at oracle.com> wrote: Changeset: 2241a2d34085 Author: mduigou Date: 2013-03-19 16:05 -0700 URL: http://hg.openjdk.java.net/jdk8/tl/jdk/rev/2241a2d34085
8001642: Add Optional, OptionalDouble, OptionalInt, OptionalLong Reviewed-by: mduigou, darcy, alanb, jjb Contributed-by: Brian Goetz <brian.goetz at oracle.com> + src/share/classes/java/util/Optional.java + src/share/classes/java/util/OptionalDouble.java + src/share/classes/java/util/OptionalInt.java + src/share/classes/java/util/OptionalLong.java + test/java/util/Optional/Basic.java + test/java/util/Optional/BasicDouble.java + test/java/util/Optional/BasicInt.java + test/java/util/Optional/BasicLong.java
- Previous message: hg: jdk8/tl/jdk: 8001642: Add Optional, OptionalDouble, OptionalInt, OptionalLong
- Next message: hg: jdk8/tl/langtools: 8010361: fix some langtools findbugs issues
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]