我正在模擬無線傳感器網絡。我必須在模擬中創建一個節點。Java:爲類類型參數添加什麼?
創建節點的函數在類Simulator
中定義。這裏Simulator
和RadioModel
是兩個用戶定義的類。
爲了創建節點,我有一個預定義的函數,即在Simulator
類中定義的createNode()
。它具有以下語法:
Node createNode(Class nodeClass, RadioModel radioModel, int nodeId,
double x, double y, double z)
這裏我很好RadioModel
參數,除了"Class nodeClass"
所有其他參數都工作正常。用什麼來代替這個論點,即nodeclass
?
任何幫助將是非常有用....
是dacwe,就像你說的Node類是由我實例Mica2Node類擴展。我已經通過參數
sim1.createNode(Mica2Node.class, g, nodeId,x,y,z);
這裏sim1是Simulator類的一個對象,g是類RadioModel的一個對象。因爲createNode不是一個靜態方法,所以我通過object調用它。但我還面臨另外三個警告:從其他課程,例如, Application.java
public Application(Node node){
this.node = node;
node.addApplication(this);
}
它在addApplication(this)方法中顯示錯誤。該方法在Node.java定義如下:
public void addApplication(Application app){
app.nextApplication = firstApplication;
firstApplication = app; }
和誤差是如下:在螺紋
異常「主」了java.lang.RuntimeException:不可編譯的源代碼 - 錯誤的符號類型:( )net.tinyos.prowler.Application。(Application.java:31) at net.tinyos.prowler.TestBroadcastNode $ BroadcastApplication。(TestBroadcastNode.java:36) at net.tinyos.prowler.TestBroadcastNode.main() TestBroadcastNode.java:118)
請幫我......
如果你有多個類節點,爲什麼不把他們全部從方法'createNode一個抽象類繼承(RadioModel radioModel,int nodeId,double x,double y,double z)',然後調用'Node n = new SpecificNode(radModel,nodeId,x,y,z);'? –
如果您想提供更多詳細信息,請簡單編輯您的問題。嚴格保留答案以解決您的問題。 –