Repast:ContextBuilderの別のクラスからメソッドを呼び出すことはできません

ジャック

NullPointerExceptionが発生する理由がわかりません:

ERROR [AWT-EventQueue-0] 18:21:05,864 repast.simphony.ui.RSApplication - Error while initializing simulation
java.lang.NullPointerException
    at intraCity_Simulator.GlobalScheduler.load_data(GlobalScheduler.java:20)
    at intraCity_Simulator.Initialization_Builder.build(Initialization_Builder.java:306)
    at repast.simphony.dataLoader.engine.ClassNameContextBuilder.build(ClassNameContextBuilder.java:41)

以下はコードです。クエリは、初期化(コンテキストビルダー)に直接配置すると機能しますが、このコードを別のクラスに配置してコンテキストビルダーで呼び出すと、NullPointerExceptionが報告されます。

public void load_data() {
    Context<Object> context = ContextUtils.getContext(this);
    Iterable<Object> readers = context.getObjects(DataReader.class);
    DataReader this_reader = null;
    Query<Object> reader_query = new PropertyEquals<Object>(context, "name", "parcel");
    for (Object o : reader_query.query()) {
        if (o instanceof DataReader) {
            this_reader = (DataReader) o;
        }
    }
    System.out.print(this_reader.getName());
}   

コンテキストビルダーでこれを行うと、nullPointerExceptionが報告されます

GlobalScheduler gs = new GlobalScheduler();
context.add(gs);
gs.load_data();

更新:

「Contextcontext = ContextUtils.getContext(this);」という行が見つかりました。動かない。コンテキストはまだnullです。どうして?ただし、クエリにはコンテキストがパラメータとして必要なので、この行が必要です。

ただし、コンテキストをメソッドload_data()に直接渡すという提案に従うと、機能します。

public void load_data(Context context) {
//      Context<Object> context = ContextUtils.getContext(this);
        DataReader this_reader = null;
        System.out.println("context  " + context);
        Query<Object> reader_query = new PropertyEquals<Object>(context, "name", "parcel");
        for (Object o : reader_query.query()) {
            System.out.println(o);
            if (o instanceof DataReader) {
                this_reader = (DataReader) o;
            }
        }
        System.out.print(this_reader.getName());
}

「Contextcontext = ContextUtils.getContext(this);」を使用してコンテキストを識別できないのはなぜですか。このメソッドは、step()でメソッドとして呼び出された場合は機能しますが、ContextBuilderでメソッドとして呼び出された場合は失敗します。

ニック・コリアー

実際には何がヌルですか?それがなければ、これがrepastの質問なのか、それともnullポインタエラーを修正するだけなのかを判断するのは困難です。後者の場合、どの変数がnullであるか、そしてなぜそうであるかを判断するのは簡単なはずです。

そうは言っても、おそらくこの行は必要ありません

Context<Object> context = ContextUtils.getContext(this);

ContextBuilderで呼び出す場合は、コンテキストをload_data()に渡すだけです。これにより、少なくともコンテキストがnullになるのを防ぐことができます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ReactNativeの別のクラスからメソッドを呼び出すことができません

分類Dev

同じクラスの別のメソッドからメソッドを呼び出すことはできません

分類Dev

Javaで他のクラスからメソッドを呼び出すことはできません

分類Dev

別のクラス内でクラスメソッドを呼び出すことはできません

分類Dev

Androidで別のクラスのメソッドを呼び出すことはできません

分類Dev

C# consoleApp は別のクラスで静的メソッドを呼び出すことはできません

分類Dev

別のクラスのメソッドを呼び出すことはできません-ANDROID

分類Dev

Javaは別のクラスからメソッドを呼び出すときにシンボルを見つけることができません

分類Dev

フォームのクラスからメソッドを呼び出すことができません

分類Dev

別のクラスからインターフェイスメソッドを呼び出すことができません

分類Dev

C ++はクラスからパブリックメソッドを呼び出すことができません: '<ClassName> :: <MethodName>'への未定義の参照

分類Dev

すべての基本クラスで同じメソッドを呼び出すことはできません

分類Dev

他のクラスのメソッドを呼び出すことはできません

分類Dev

カスタムConstraintLayoutクラスのメソッドを呼び出すことができませんか?

分類Dev

Javaのクラスでvoidメソッドを呼び出すことはできません

分類Dev

JavaScriptで親クラスのメソッドを呼び出すことはできません

分類Dev

なぜ、この静的な内部クラスは、その外側のクラスの非静的メソッドを呼び出すことはできませんか?

分類Dev

プロキシクラスは子のメソッドを呼び出すことができません

分類Dev

クラス名を使用せずに別のクラスの静的メソッドを呼び出すことはできますか?

分類Dev

Mainから継承されたクラス内のメソッドを呼び出すことはできません

分類Dev

クラスからメソッドを呼び出すことができません

分類Dev

DBus の 2 番目のクラスのメソッドを呼び出すことができません

分類Dev

カスタムTextBoxのEventTriggerのCallMethodActionからメソッドを呼び出すことができません

分類Dev

Swiftで特定のObjective-Cクラスメソッドを呼び出すことができません

分類Dev

親クラスは孫クラスのメソッドを呼び出すことができますか?

分類Dev

Clojureから特定のJavaメソッドを呼び出すことはできません

分類Dev

親の@viewchildrenからメソッドを呼び出すことはできません

分類Dev

angle2 の Component.html からモデル クラスのメソッドを呼び出すことができません

分類Dev

別のクラスからオブジェクトを呼び出すことはできません

Related 関連記事

  1. 1

    ReactNativeの別のクラスからメソッドを呼び出すことができません

  2. 2

    同じクラスの別のメソッドからメソッドを呼び出すことはできません

  3. 3

    Javaで他のクラスからメソッドを呼び出すことはできません

  4. 4

    別のクラス内でクラスメソッドを呼び出すことはできません

  5. 5

    Androidで別のクラスのメソッドを呼び出すことはできません

  6. 6

    C# consoleApp は別のクラスで静的メソッドを呼び出すことはできません

  7. 7

    別のクラスのメソッドを呼び出すことはできません-ANDROID

  8. 8

    Javaは別のクラスからメソッドを呼び出すときにシンボルを見つけることができません

  9. 9

    フォームのクラスからメソッドを呼び出すことができません

  10. 10

    別のクラスからインターフェイスメソッドを呼び出すことができません

  11. 11

    C ++はクラスからパブリックメソッドを呼び出すことができません: '<ClassName> :: <MethodName>'への未定義の参照

  12. 12

    すべての基本クラスで同じメソッドを呼び出すことはできません

  13. 13

    他のクラスのメソッドを呼び出すことはできません

  14. 14

    カスタムConstraintLayoutクラスのメソッドを呼び出すことができませんか?

  15. 15

    Javaのクラスでvoidメソッドを呼び出すことはできません

  16. 16

    JavaScriptで親クラスのメソッドを呼び出すことはできません

  17. 17

    なぜ、この静的な内部クラスは、その外側のクラスの非静的メソッドを呼び出すことはできませんか?

  18. 18

    プロキシクラスは子のメソッドを呼び出すことができません

  19. 19

    クラス名を使用せずに別のクラスの静的メソッドを呼び出すことはできますか?

  20. 20

    Mainから継承されたクラス内のメソッドを呼び出すことはできません

  21. 21

    クラスからメソッドを呼び出すことができません

  22. 22

    DBus の 2 番目のクラスのメソッドを呼び出すことができません

  23. 23

    カスタムTextBoxのEventTriggerのCallMethodActionからメソッドを呼び出すことができません

  24. 24

    Swiftで特定のObjective-Cクラスメソッドを呼び出すことができません

  25. 25

    親クラスは孫クラスのメソッドを呼び出すことができますか?

  26. 26

    Clojureから特定のJavaメソッドを呼び出すことはできません

  27. 27

    親の@viewchildrenからメソッドを呼び出すことはできません

  28. 28

    angle2 の Component.html からモデル クラスのメソッドを呼び出すことができません

  29. 29

    別のクラスからオブジェクトを呼び出すことはできません

ホットタグ

アーカイブ