のインスタンスを取得することは可能Class<SomeGenericClass<SomeType>>
ですか?
たとえば、のインスタンスをClass<ArrayList<String>>
インスタンス化せずにのインスタンスArrayList<String>
。
@SuppressWarnings("unchecked")
public static <T> T castToGeneric(Object objectToCast, T typeInferrenceClass) {
return (T)objectToCast;
}
// usage
Object someObject = null /* initialised elsewhere */;
List<String> listOfStrings = castToGeneric(someObject, new ArrayList<String>());
// I want to avoid having to create - new ArrayList<String>();
私はこのコードが醜いことを知っているので、これを行うべきではありません。しかし、私たちは私たちがいる場所です...