ポリモーフィズムによるオブジェクトのスワッピング位置

アレックス

BlockworldProblemのインスタンスを解決しようとしています。基本的に、NxNグリッドには、ブロックA、B、C、およびエージェントが含まれます。エージェントのみが移動できます。ブロックに遭遇する途中で、エージェントの位置が切り替わります。たとえば、Agent(1、0)が左に移動してブロックB(0、0)に遭遇すると、2つの新しい位置はAgent(0、0)とB(1、0)になります。

私のエージェントクラスとブロッククラスはどちらもエンティティのサブクラスです。

これが私の関数swap()です。移動後、エージェントがブロック上にあるかどうかをチェックし、ブロックの新しい位置がエージェントの前の位置になります。

(Block block:blockList)で試しましたが、ポリモーフィズムを使おうとすると(Entity en:entityList)では機能しません。

誰かが私が犯した間違いを見つけられますか?

public void swap() {

    for (Entity en : entityList) {
        if (agent.position.equals(block.position) && (en instanceof Block))  {
            System.out.print("Agent overlap block: " + en);
            en.previousPosition = new Dimension(block.position.width, block.position.height);
            en.setPosition(agent.previousPosition); 
        }
    }
}
OK

まず第一に、ifステートメントの「ブロック」がどこから来たのかを教えていません。あなたがする必要があるかもしれないことは、です:

public void swap(){
    for(Entity en:entityList){
        if((en instanceof Block)&&(en.position.equals(agent.position)){
                    //                 ^here is "en" instead of block
            System.out.println("Agent overlab block: "+en);
            en.previousPosition=new Dimension(
                    en.position.width,
                    en.position.height);
            en.setPosition(agent.previousPosition);
        }
    }
}

最後に、Dimensionの代わりにjava.awt.Pointを使用できます。また、フィールド「previousPosition」にはsetterメソッドを使用する必要があります。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

リポジトリパターンのジェネリックスによるポリモーフィズム

分類Dev

パンダ:リストオブジェクトを含むシリーズのオーバーラップによるフォワードフィル

分類Dev

基本クラスオブジェクトの作成中のランタイムポリモーフィズム

分類Dev

ポリモーフィックオブジェクトのJacksonカスタムデシリアライズ

分類Dev

ポリモーフィックオブジェクトのJacksonカスタムデシリアライズ

分類Dev

ポリモーフィズムを使用してオブジェクトのリストを初期化する

分類Dev

ポリモーフィズムを使用してオブジェクトのリストを初期化する

分類Dev

Javaポリモーフィズムにおけるオブジェクトのフィールドアクセスとメモリ割り当て

分類Dev

リアクティブスプリングリポジトリで保存する前に、オブジェクトの複雑なフィールドをテキストフィールド(JSONとしてシリアル化)にマッピングする

分類Dev

IQueryableとIEnumerable、およびオブジェクトがどのサブクラスであるかを認識しているポリモーフィズム

分類Dev

Oracleデータベースのディレクトリオブジェクトをネットワークパスにマッピングする

分類Dev

Javaのジェネリックスによる静的ポリモーフィズム

分類Dev

スレッドのサブクラスのオブジェクトをインスタンス化するために継承とポリモーフィズムを使用することの主な違いは何ですか?

分類Dev

スレッドのサブクラスのオブジェクトをインスタンス化するために継承とポリモーフィズムを使用することの主な違いは何ですか?

分類Dev

ポリモーフィックオブジェクトのリストをオブジェクトフィールドに逆シリアル化する

分類Dev

ポリモーフィックオブジェクトのリストをオブジェクトフィールドに逆シリアル化する

分類Dev

コードによるnhibernateマッピング、値オブジェクトのリストを使用したマッピングエンティティ

分類Dev

ポリモーフィックオブジェクトのコピー

分類Dev

オブジェクトとポリモーフィズムの作成

分類Dev

配列リストにオブジェクトのインスタンスを表示するにはどうすればよいですか?(ポリモーフィズム)

分類Dev

ジャクソンプロパティのスプリングブートとポリモーフィズム

分類Dev

Javaポリモーフィズムサブクラスオブジェクトのスーパークラスメソッドを呼び出す方法

分類Dev

モデルオブジェクトのリストによるDjangoフィルタリング

分類Dev

ポリモーフィズムによるC ++テンプレートメソッドのオーバーロードとクラスアクセス

分類Dev

ポリモーフィズムの実装中にオブジェクトの作成が機能しない

分類Dev

サブタイピングによるポリモーフィズムの考え方

分類Dev

リストにサブタイプのポリモーフィズムとジェネリックを使用する方法は?

分類Dev

JAX-WSでのポリモーフィックオブジェクトのマーシャリング

分類Dev

ユーザーとオブジェクトによるDjangoモデルのフィルタリング

Related 関連記事

  1. 1

    リポジトリパターンのジェネリックスによるポリモーフィズム

  2. 2

    パンダ:リストオブジェクトを含むシリーズのオーバーラップによるフォワードフィル

  3. 3

    基本クラスオブジェクトの作成中のランタイムポリモーフィズム

  4. 4

    ポリモーフィックオブジェクトのJacksonカスタムデシリアライズ

  5. 5

    ポリモーフィックオブジェクトのJacksonカスタムデシリアライズ

  6. 6

    ポリモーフィズムを使用してオブジェクトのリストを初期化する

  7. 7

    ポリモーフィズムを使用してオブジェクトのリストを初期化する

  8. 8

    Javaポリモーフィズムにおけるオブジェクトのフィールドアクセスとメモリ割り当て

  9. 9

    リアクティブスプリングリポジトリで保存する前に、オブジェクトの複雑なフィールドをテキストフィールド(JSONとしてシリアル化)にマッピングする

  10. 10

    IQueryableとIEnumerable、およびオブジェクトがどのサブクラスであるかを認識しているポリモーフィズム

  11. 11

    Oracleデータベースのディレクトリオブジェクトをネットワークパスにマッピングする

  12. 12

    Javaのジェネリックスによる静的ポリモーフィズム

  13. 13

    スレッドのサブクラスのオブジェクトをインスタンス化するために継承とポリモーフィズムを使用することの主な違いは何ですか?

  14. 14

    スレッドのサブクラスのオブジェクトをインスタンス化するために継承とポリモーフィズムを使用することの主な違いは何ですか?

  15. 15

    ポリモーフィックオブジェクトのリストをオブジェクトフィールドに逆シリアル化する

  16. 16

    ポリモーフィックオブジェクトのリストをオブジェクトフィールドに逆シリアル化する

  17. 17

    コードによるnhibernateマッピング、値オブジェクトのリストを使用したマッピングエンティティ

  18. 18

    ポリモーフィックオブジェクトのコピー

  19. 19

    オブジェクトとポリモーフィズムの作成

  20. 20

    配列リストにオブジェクトのインスタンスを表示するにはどうすればよいですか?(ポリモーフィズム)

  21. 21

    ジャクソンプロパティのスプリングブートとポリモーフィズム

  22. 22

    Javaポリモーフィズムサブクラスオブジェクトのスーパークラスメソッドを呼び出す方法

  23. 23

    モデルオブジェクトのリストによるDjangoフィルタリング

  24. 24

    ポリモーフィズムによるC ++テンプレートメソッドのオーバーロードとクラスアクセス

  25. 25

    ポリモーフィズムの実装中にオブジェクトの作成が機能しない

  26. 26

    サブタイピングによるポリモーフィズムの考え方

  27. 27

    リストにサブタイプのポリモーフィズムとジェネリックを使用する方法は?

  28. 28

    JAX-WSでのポリモーフィックオブジェクトのマーシャリング

  29. 29

    ユーザーとオブジェクトによるDjangoモデルのフィルタリング

ホットタグ

アーカイブ