私は別のクラスを拡張する特定のクラスメンバーを持つと思われるいくつかのクラスを作成する必要があるので、から継承する。特定のクラスがジェネリック型の制約を満たしているかどうかを調べる
このスーパークラスに、ユーザーが取得できる必要な型の正しいインスタンスを保持します。
私はクラスオブジェクトを取得するクラスを作成していますが、そのクラスのオブジェクトをインスタンス化したいのですが、ジェネリックタイプと同じ制約を満たしている場合にのみ、それを確認する方法がわかりません。
クラスは、このようなものです:私はクラスがの子のタイプで実際にあるかどうかを確認することができますどのように
The method isAssignableFrom(Class) is undefined for the type T
:
public class GenericClass<T extends SomeClass<S> & AnotherClass<S>, S extends Object>
{
protected T myObject;
public GenericClass(Class objectClass)
{
//this line is the problem
if(T.isAssignableFrom(objectClass))
{
try
{
myObject= (T) objectClass.newInstance();
}
catch (InstantiationException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public T getMyObject()
{
return myObject;
}
}
問題のある行は、エラーを与えていますTとその制約を満たすか?チェックのためにcatch
ブロックを使用するだけですか?
パラメータとして 'クラス extends T>'を使用しますか? –