Java 如何声明扩展参数化类型的类型变量?
我不是一个Java程序员,所以如果我的术语有点不合适,请原谅。我想声明如下:Java 如何声明扩展参数化类型的类型变量?,java,generics,Java,Generics,我不是一个Java程序员,所以如果我的术语有点不合适,请原谅。我想声明如下: public class Foo<T extends Bar<I, J, K>> { .... }; 公共类Foo{ .... }; 我的IDE告诉我它无法解析I、J或K 我尝试用Java做的是什么,还是应该采取其他方法?您必须声明所有类型参数: public class Foo<I,J,K,T extends Bar<I, J, K>> { ....
public class Foo<T extends Bar<I, J, K>> {
....
};
公共类Foo{
....
};
我的IDE告诉我它无法解析I、J或K
我尝试用Java做的是什么,还是应该采取其他方法?您必须声明所有类型参数:
public class Foo<I,J,K,T extends Bar<I, J, K>> {
....
}
公共类Foo{
....
}
您不能以这种方式隐式声明它们,您需要编写
public class Foo<I, J, K, T extends Bar<I, J, K>>
公共类Foo
注意:如果这看起来是多余的,您可能会发现您所需要的只是
public class Foo<I, J, K> {
final Bar<I, J, K> bar;
公共类Foo{
最终钢筋;
假设I、J、K
不是类,它们是类型参数名,编译器需要引用它们的显式声明
这会管用的
class Foo<I,J,K,T extends Bar<I, J, K>> {
}
class Bar<I,J,K>{
}