Re:Go and Java: Rethinking Type Safety for the Pragmatic Age
by stickfigure on Tuesday November 26, 2024 @05:14PM
(#42250656)
The parent certainly knows this. Additional methods could be added to `Map` which return `Optional`. I am annoyed by their absence every day.
[ Parent
| on HN ]
Re:Go and Java: Rethinking Type Safety for the Pragmatic Age
by pbh101 on Wednesday November 27, 2024 @01:27AM
(#42253495)
Maybe. They didn't seem to communicate any specific knowledge of the Java standard library. Agree an
Optional<V> get(K)
sounds like an 'obvious' addition, though also I've found that when something 'obvious' isn't added to Java since 1.7, the explanation proffered makes sense to me.
Re:Go and Java: Rethinking Type Safety for the Pragmatic Age
by cogman10 on Wednesday November 27, 2024 @01:02PM
(#42258153)
Java doesn't have return type function dispatch.
If you had something like:
var x = map.get(k);
The type of `x` could not be inferred.The best they could hope for is a signature like `Optional<V> getOpt(K);`. Which wouldn't be terribly bad as Java currently has an annoying get definition in the `Map` interface because it predates generics (The current signature is `V get(Object)`).
Regardless, if they do want to change the interface, it'd probably be best if they waited for Valhalla to land. One of the problems with `Optional` as it stands is it creates a load of GC pressure. If `Optional` is converted into a value class then there will be effectively no overhead to returning it everywhere.