配列コレクションにゲームオブジェクトがありますが、それらは異なるクラスである可能性があります。私はその座標によってオブジェクトを見つけることができます:
Object obb = grid.getCellContent(insertObjectX, insertObjectY);
私がする必要があるのは、obb.canBeSubmerged == trueかどうかを見つけて、それを別の配列に移動することです。
問題は、コンパイラが使用したクラスを認識していないため、そのオブジェクト「canBeSubmerged」のプロパティを取得できないことです。
"obb.getClass() == myClass.class"
可能なオブジェクトクラスごとにステートメントを実行するより簡単な方法があるのではないかと思います。
。。
編集:ここに行き詰まりのない提案に基づいて、実用的な解決策があります:
try {
java.lang.reflect.Field f1 = obb.getClass().getField("canBeSubmerged");
java.lang.reflect.Field f2 = obb.getClass().getField("subObject");
if (f1 != null) {
canBeSubmerged = f1.getBoolean(obb);
f2.setBoolean(obb, canBeSubmerged);
}
}catch (Exception e) { }
//enter it into the submerged grid level and remove from the top grid level
if (canBeSubmerged){
grid.removeObject(insertObjectX, insertObjectY);
grid.putSubObjectInCell(insertObjectX, insertObjectY, obb);
}