veryImportantMethod
(下の例から)にClassパラメータがあるので、問題はT.class
のようにする必要があることです。ジェネリッククラスのgetClass()
public abstract class Something<T> {
public abstract Class<T> getGenericClass();
}
public class Example extends Something<Example> {
@Override
public Class<Example> getGenericClass() {
return Example.class;
}
}
public static abstract class BaseDao<T extends Something<T>> extends Amazing {
T type;
public T doSomething() {
this.veryImportantMethod(type.getGenericClass());
}
}
public static class Son extends BaseDao<Example> {
}
実は私は
を取得していますが...どのように私はこれを通過することができます...書き込まれていないフィールドのNP_UNWRITTEN_FIELD
を読みますか?
あなたは何を求めていますか?あなたのBaseDaoインスタンスが次のように初期化された場合、Example.classを取得することを意味しますか? '' '' BaseDao bd = new BaseDao (); '' '? –
NullPointerExceptionが発生しているはずですが、 "NP_UNWRITTEN_FIELD"を取得したとしますか?これは実際にはJavaか多分Javaが呼び出すか、何か他のものにラップされていますか? –