Java 字符串不可比扩展?

Java 字符串不可比扩展?,java,string,generics,comparable,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 Com

我在写一个练习程序,以前是用普通眼镜完成的,但现在我遇到了一个我还没有看到的非常奇怪的错误

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
Test.java:26:错误:类型参数字符串不在类型变量的范围内
T
b袋=新袋();
^
其中T是一个类型变量:
T在课堂袋中声明
根据我所说的,类字符串并没有实现可比较的类。我把它弄得一团糟有一段时间了,我想我在某个地方犯了一个小错误,但我看不见它。任何帮助都将受到感谢。 代码是:

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<>();
    }
}  
类包
{
私人T[]b=(T[])(新的可比[100]);
整数比较(T)
{
返回0;
}
}
课堂测试
{
公共静态void main(字符串[]args)
{
袋子=新袋子();
}
}  

您的
Compariable
不是
java.lang.Compariable
,而是您的自定义接口,与
测试位于同一(默认)包中。因此编译器是正确的:
java.lang.String
没有实现您的接口。

这里看起来不错:。请构造一个演示该问题的示例。是否实现
Comparable
错误很奇怪,String确实实现了Comparable,我不知道为什么会出现这个错误您的最小测试用例不是测试用例;它还编译了fine:。你的类路径上可能有输入错误、编译器损坏,或者有一些奇怪的东西,比如
字符串
的自定义实现。也许你的文件中有其他类似的
导入
。请将您的
main
替换为
System.out.println(Comparable.class);System.out.println(String.class),运行它并显示结果。