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)
{
}
この場合、上記の解決策は失敗します。誰かが助けてくれますか。