2017-01-17 287 views
0

在測試Java API時,我需要更改默認設置。根據API的文檔,應該使用類「public void setType」中定義的方法來完成。假設類名爲「節點」,這是使用如何通過rJava調用「public void」方法

library(rJava) 
.jinit(classpath=jarPath) 
Node <- J("Node") 

地提到其文檔的Java示例,它被稱爲

Node nodeX = new Node("X", new Variable[]{x}); 
nodeX.setType(Type.TEMP); 

節點X的默認類型是「當代」。如何通過rJava在R中調用「setType」方法將其默認值更改爲另一個?讓我們假設「類型」是一個枚舉變量,它有幾種選擇,包括「當代」,「TEMP」等

回答

0

我想你想

library(rJava) 
.jinit(classpath=jarPath) 
variable <- .jarray(new(J("package.name.Variable", input_arg)) 
Node <- new(J("package.name.Node"), variable) 

然後,你可以做

type <- J("package.name.Type")$TEMP 
Node$setType(type) 
+0

它給了我「在model.Node'中沒有靜態字段,方法或稱爲'TEMP'的內部類」('model'是package.name)。 – Tony

+0

從你的問題中,我認爲枚舉是'Type'與期望值'TEMP'。該行關於獲取正確的枚舉值,以便您可以將它傳遞給'setType'方法。您的評論表明您正在嘗試將枚舉值從「Node」類中拉出。 –

+0

工程很棒。非常感謝你 – Tony

相關問題