Javaオブジェクトxxがnullでない場合、getClass()
メソッドを使用して取得できるオブジェクトの対応するClass
オブジェクトが必要ですが、このメソッドは実行時にnull
を返します。非常に奇妙な。javaオブジェクトgetClass()メソッドがnullを返す
例:
オブジェクト(oldFact)が吹いたとしてExternalFactUpdateDroolsEvent
クラスで参照されているserializbleオブジェクトで、この呼び出しはシリアライズし、それにdeserilized excution処理のget、タイプExternalFactUpdateDroolsEvent
の最初の多くのオブジェクトを取得シリアライズ後者取得手段このプロセスで実行する前に、いくつかの時間oldFactオブジェクトは、問題を引き起こしているnull
Class
オブジェクトを返します。
私の質問は、オブジェクトがない場合ですnull
how getClass()
メソッドはnull
を返しますか?これは、オブジェクトを適切に初期化しない/インスタンス化しないなどの理由で、これらのオブジェクトが別のJVMからシリアル化されて、1つのJVMで実行される可能性があるオブジェクトです。より多くのコンテンツを追加
public class ExternalFactUpdateDroolsEvent implements DroolsEvent {
private static final long serialVersionUID = -8225631607832350264L;
private Object oldFact;
public ExternalFactUpdateDroolsEvent(Object oldFact) {
this.oldFact = oldFact;
this.updatedFact = updatedFact;
}
public void executeAction(StatefulKnowledgeSession ksession) {
// some time getClass() returns null that is strange
Class factClass = oldFact.getClass();
........................
}
......................
}
:私は理由oldFact.getClassにはnullポインタ例外()oldFactがnullではないと確信しています
を。 call、 クラスobjecrのfactClassがnullがアサートされている他のメンデントに渡されています。つまり、例外がスローされている です。以下のコードと例外を参照してください。 事前に助けていただきありがとうございます。
は、なぜあなたはそれがnullを返すと思いますか? –
'.getClass()'は 'null'を返すことができません。 – Bozho
OldFactをExternalFactUpdateDroolsEventまたはそれが属するクラスにボックス化(キャスト)します – emaillenin