|
|
|
|
|
by samatman
3376 days ago
|
|
And have one, since Java either throws away the return value, or assigns it to a variable the type of which is known. Edit: here's the edge case though. You can call a function and use the return value directly as a parameter: foo(bar()). It's possible to have two foo that take both possible bar return types, at which point the compiler is stuck. It could require a cast in this instance, however. The more I think about this the more I wonder why this isn't possible. |
|
That's no more an edge case than the cases where you throw away the return value or you're binding to an ambiguous type e.g. `A getFoo()`, `B getFoo()`, `Object foo = getFoo()`.
> The more I think about this the more I wonder why this isn't possible.
The Java spec does not say, for C++ Stroustrup states it's
> to keep resolution for an individual operator or function call context-independent.
the Java reason is likely also some sort of Principle of Least Surprise claim.