具有多个泛型的字段

时间:2014-10-16 19:21:41

标签: java generics

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

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

interface Foo {
  // ...
}

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

编译器错误:Syntax error on token &

1 个答案:

答案 0 :(得分:0)

问题回答here

简而言之,引自java language specification

4.9交叉点类型交叉点类型采用T1和amp;的形式。 ......&amp; Tn,n> 0,其中Ti,1in是类型表达式。交叉类型出现在捕获转换(第5.1.10节)和类型推断(第15.12.2.7节)的过程中。不能直接将交集类型写为程序的一部分;没有语法支持这个。交集类型的值是那些是所有类型Ti的值的对象,1in。