所以我正在爲我創建的應用程序創建自己的物理引擎。目前,我已經有了一個StaticObject
類,用於不模擬每個遊戲刻度的簡單對象,以及用於涉及重力和碰撞等的對象的DynamicObject
類。接下來,我創建一個約束類來創建這些不同對象之間的鏈接,例如使這個dynamicObject
保持在與此staticObject
相同的位置。我試圖訪問Constraint
類的對象類(StaticObject
或DynamicObject
)中的一些方法和值,但我訪問的特定類型/類是可變的。它可以是類型StaticObject
或DynamicObject
。從變量類型類訪問方法
這是需要訪問Object
類或'變量類型類'的類(我不知道這裏有沒有適當的術語,但我想知道,Java的這方面有點新鮮):
public class Constraint<objectType1, objectType2> {
private Class<objectType1> object1;
private Class<objectType2> object2;
public Constraint(Class<objectType1> object1, Class<objectType2> object2) {
this.object1 = object1;
this.object2 = object2;
}
public void update() {
object2.position = object1.position;
}
}
我肯定知道什麼類型的對象是(StaticObject
或DynamicObject), they will each have the attribute
object.position`
所以,我的問題歸結爲:如何確定該變量類是正確的類型(StaticObject
或DynamicObject
),然後如何訪問方法和變量在類內不管類型?我是否朝着正確的方向前進?如果不是,我可以學習哪些更好的方法?
請舉例,這對我來說是新的。 :)
那麼,泛型是變量類型的東西? – SuperContraptionGuy
是的,在某些方面是。詳細瞭解Java集合中如何使用泛型。 –