我正在编写一个过去使用仿制眼镜完成的锻炼计划,但现在我遇到了一个我还没见过的非常奇怪的错误。
Test.java:26: error: type argument String is not within bounds of type-variable
T
Bag<String> b = new Bag<String>();
^
where T is a type-variable:
T extends Comparable<T> declared in class Bag
从我的观点来看,类String没有实现Comparable类。我已经搞砸了一段时间,我想我在某个地方犯了一个小错误,但我看不到它。任何帮助都会得到满足。 代码是:
class Bag<T extends Comparable<T>>
{
private T [] b = (T [])(new Comparable[100]); ;
int compareTo(T t)
{
return 0;
}
}
class Test
{
public static void main(String [] args)
{
Bag<String> bag = new Bag<>();
}
}
答案 0 :(得分:3)
您的Comparable
不是java.lang.Comparable
,而是您的自定义界面,位于与Test
相同的(默认)包中。所以编译器是正确的:java.lang.String
没有实现你的那个接口。