私は次のようなクラスを持っています:
public class MyConverter {
public <T> T convert (Object o, String typeidentifier, T dummy)
{
... do some conversions such as a java array to an ArrayList or vice versa
... based on a typeidentifier syntax similar to Class.getName() but which
... embeds information about generic subtypes
}
}
そして、次のような一般的なことを実行できるようにしたい:
int[] ar = {...};
ArrayList<Integer> dummy = null;
Integer elem = MyConverter.convert(ar, "java.util.ArrayList<Integer>", dummy)
.get(15);
つまり、T
in convert自体が汎用インスタンスである可能性があり、この目標を機能させるには、完全に型指定されたダミーを渡す必要があることがわかりました。これはArrayList.class
、Javaコンパイラに十分な情報を提供しないためですArrayList<Integer>
。Class<T> dummycls
の代わりにT dummy
。
私は何かが足りないのですか?ダミーを必要とせずに変換の書き込みと呼び出しの両方を行う方法はありますか?