我有一个关于 Java 泛型的基本问题。我有一个由另一个类 T 实例化的类 X。在每个将要使用的类 T 中,都有一个称为 methodOfT() 的方法。但是,Java 给了我编译器时间错误,因为它不知道 obj 和 methodOfT()。
public class X<T>
{
T obj;
public void methodOfX()
{
obj.methodOfT();
}
}
为了避免这个问题,我所做的是我定义了另一个类 XSuper。现在每个想要实例化 X 的类都将扩展这个 XSuper 类。这消除了编译时错误并允许我实现我想要的。
public abstract class XSuper
{
public abstract void methodOfT();
}
public class UserOfX extends XSuper
{
X<UserOfX> objX = new X<UserOfX>();
public void methodOfT()
{
}
}
但是,我想知道做这件事的更干净的方式。因为我想从另一个类派生类 UserOfX。另一个问题是我想将 methodOfT() 方法定义为 -
public methodOfT(T objOfT)
{
}
在这种情况下,上述解决方案将失败。有人可以帮忙吗。