2014-10-16 70 views
0

为什么我不能声明一个实现多个接口/类的泛型的字段?具有多种泛型的字段

class MyClass { 
    private Class<? extends Enum<?> & Foo> bar; 
    //.. 
} 

interface Foo { 
    // ... 
} 

public enum A implements Foo { 
    // ... 
} 

编译器错误:Syntax error on token &

+4

'String'是'final'类,所以没有什么可以'扩展'它。 – dasblinkenlight 2014-10-16 19:23:13

+0

编译器错误是明确的。 – 2014-10-16 19:24:14

+0

ID不能与Enum一起使用 – Nutel 2014-10-16 19:25:38

回答

0

问题回答here

总之,并从java language specification引述:

4.9交叉口类型的交叉点型的形式为T1 & ... Tn的&,N> 0,其中,Ti,1英寸,是类型表达式。交集类型出现在捕获转换(§5.1.10)和类型推断(§15.12.2.7)的过程中。作为程序的一部分不可能直接编写交集类型;没有语法支持这一点。交点类型的值是那些对于1in的所有类型Ti的值的对象。