String不扩展Comparable?

时间:2015-07-25 21:50:01

标签: java string generics comparable

我正在编写一个过去使用仿制眼镜完成的锻炼计划,但现在我遇到了一个我还没见过的非常奇怪的错误。

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<>();
    }
}  

1 个答案:

答案 0 :(得分:3)

您的Comparable不是java.lang.Comparable,而是您的自定义界面,位于与Test相同的(默认)包中。所以编译器是正确的:java.lang.String没有实现你的那个接口。