在Java中重写抽象泛型函数的对象上使用方法

在Java中重写抽象泛型函数的对象上使用方法,java,oop,generics,Java,Oop,Generics,下面是下面的代码 public abstract class A { public abstract <E> void foo(E e); } 我得到的错误是: error: cannot find symbol ... symbol: method someOtherClassMethod() location: variable oc of type OtherClass where OtherClass is a type-variable: O

下面是下面的代码

public abstract class A {
    public abstract <E> void foo(E e);
}
我得到的错误是:

 error: cannot find symbol
...
symbol:   method someOtherClassMethod()
  location: variable oc of type OtherClass
  where OtherClass is a type-variable:
    OtherClass extends Object declared in method <OtherClass>write(OtherClass )
1 error
错误:找不到符号
...
符号:方法someOtherClassMethod()
位置:OtherClass类型的变量oc
其中OtherClass是类型变量:
OtherClass扩展方法写入中声明的对象(OtherClass)
1错误
为什么我不能使用someOtherClassMethod()?没有泛型,一切都可以工作,但我希望能够扩展覆盖foo()方法的其他类

解决方案:

public abstract class A <E> {
    public abstract void foo(E e);
}
公共抽象类A{
公开摘要无效foo(E);
}
子类:

public class B extends A<OtherClass> {
    @Override
    public void foo(OtherClass oc) {
        oc.someOtherClassMethod();
    }
}
公共类B扩展了{
@凌驾
公共无效foo(其他类别oc){
oc.someOtherClassMethod();
}
}
但是,现在我需要在主功能中使用:

A<OtherClass> a = new B();
A A=新B();
试试看

公共抽象类A{
公开摘要无效foo(E);
}

公共类B扩展了

因为
otherClass
是一个泛型参数,所以可以是任何东西。Show otherClass.java文件是否有方法someotherclassmethod注意,按照惯例,java类型和类型参数以大写字母开头。i、 e.
OtherClass
,而不是
OtherClass
。是的,它有一些otherclassmethod,没有泛型,一切正常@Oliver,所以有可能使它与泛型参数一起工作?在这里使用泛型要解决什么问题?如果不理解这一点,就很难提出有意义的解决方案。
public class B extends A<OtherClass> {
    @Override
    public void foo(OtherClass oc) {
        oc.someOtherClassMethod();
    }
}
A<OtherClass> a = new B();
public abstract class A<E> {
  public abstract void foo(E e);
}
public class B extends A<OtherClass>