我不是一个Java程序员,所以请原谅我,如果我的术语有点偏。我想宣布以下内容:
public class Foo<T extends Bar<I, J, K>> {
....
};
我的IDE告诉我它无法解析I,J或K.
我正在尝试用Java做什么,还是应该采取其他方法?
答案 0 :(得分:3)
您必须声明所有类型参数:
public class Foo<I,J,K,T extends Bar<I, J, K>> {
....
}
答案 1 :(得分:1)
你不能以这种方式隐式声明它们,你需要写
public class Foo<I, J, K, T extends Bar<I, J, K>>
请注意,如果这看起来多余,您可能会发现所需要的只是
public class Foo<I, J, K> {
final Bar<I, J, K> bar;
答案 2 :(得分:1)
假设I,J,K
不是类,并且它们是类型参数名称,编译器需要引用它们的显式声明。
这样可行
class Foo<I,J,K,T extends Bar<I, J, K>> {
}
鉴于Bar
需要3个类型参数,
class Bar<I,J,K>{
}