On Wed, Aug 19, 2009 at 1:03 AM, Peter Becker <[email protected]>wrote:
>
> Interestingly Java's generics allow the dual construction on interfaces:
>
> public <T extends Interface1 & Interface2> void someMethod(T param) {...}
Yeah, you can do intersection types in generics. But you can't write
Interface1 & Interface2 foo() {...}
Interface1 & Interface2 x = foo();
Also, note the syntax is different when you create a new type in that
intersection
class Bar implements Interface1, Interface2
Java is maddening with its irregularity.
> I really like the idea of having the anonymous unions/joins and
> considering that the resulting type system should be a complete lattice
> they sound manageable to me -- both for the compiler and the human
> reader. Does anyone know reasons why no language seems to have this
> feature?
>
>
I honestly don't know. I'm not aware of any languages with that kind of
union type. Certainly with Scala's pattern matching it would be a prime
candidate for re-extracting union types, but even it doesn't have them.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "The
Java Posse" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en
-~----------~----~----~----~------~----~------~--~---