Java 类型参数为';答案不正确

Java 类型参数为';答案不正确,java,generics,Java,Generics,我的主类中有两个公共静态子类: public class Main { public static void main(String args[]) { ... } public static class Obj { public void foo() { } ... } public static class ObjList<Obj> { private ArrayList<Obj> o

我的主类中有两个公共静态子类:

public class Main {
   public static void main(String args[]) {
     ...
   }

   public static class Obj {
     public void foo() {
     }
     ...
   }

   public static class ObjList<Obj> {
     private ArrayList<Obj> objList;
     
     public void bar() {
       for(Obj obj: objList)
         obj.foo();     // Error here, cannot resolve method foo()
     
   }
公共类主{
公共静态void main(字符串参数[]){
...
}
公共静态类Obj{
公共图书馆{
}
...
}
公共静态类对象列表{
私有ArrayList对象列表;
公共空白栏(){
用于(对象对象:对象列表)
obj.foo();//此处出错,无法解析方法foo()
}
在这种情况下,我无法访问ObjList类中Obj的实例方法foo()。如果我将鼠标悬停在类型参数Obj上,它将显示“类型参数Obj扩展对象”

如果我这样更改对象列表:

public static class ObjList<T extends Obj> {
}
公共静态类对象列表{
}
然后错误消失了,当我将鼠标悬停在Obj上时,它正确地显示“publicstaticclassmain.Obj扩展对象”


我想知道为什么前面的声明不起作用。

ObjList
不需要泛型参数。在其当前形式中,
被解释为(变量)类型(如第二个示例中的
t
)默认情况下,它们由
对象
限定。删除它,代码将按预期工作。在不需要的地方使用泛型!!去掉隐藏名称的类型变量
Obj
公共静态类ObjList{
谢谢大家,我意识到我犯了一个非常愚蠢的错误。