我正在嘗試使用第二個(gè)類(lèi)中的方法(應(yīng)該返回一個(gè)列表)從一個(gè)類(lèi)調(diào)用該方法,但是,第二個(gè)類(lèi)方法沒(méi)有被識(shí)別。我沒(méi)有收到任何可見(jiàn)的錯(cuò)誤或警告。我的第一堂課:import java.util.*;public class testClass { public static List<Object> makeStuff() { int a = 2; double b = 3.1; return Arrays.asList(a, b); } }而第二個(gè)import java.util.*;public class otherClass { public List<Object> outputStuff() { // create some other stuff here which will be appended to id List<Object> id = testClass.makeStuff(); return id ; } public void main(String[] args) { }}從如何從另一個(gè)類(lèi)訪(fǎng)問(wèn)一個(gè)類(lèi)的方法?我認(rèn)為這會(huì)起作用,因?yàn)榈谝环N方法是靜態(tài)的。請(qǐng)問(wèn)我在哪里犯錯(cuò)?如果需要,提供額外信息:我實(shí)際上是使用 R 將此代碼與 R 接口rJava,但收到一個(gè)錯(cuò)誤指示java錯(cuò)誤。這將返回第一個(gè)類(lèi)/方法的預(yù)期值library(rJava).jinit().jaddClassPath("C:\\Users\\david\\eclipse-workspace\\SOtest\\bin") myJavaClass <- .jnew("testClass")x <- J(myJavaClass, "makeStuff")x# [1] "Java-Object{[2, 3.1]}"但不是第二次.jinit().jaddClassPath("C:\\Users\\david\\eclipse-workspace\\SOtest\\bin") myJavaClass <- .jnew("otherClass")x <- J(myJavaClass, "outputStuff")拋出錯(cuò)誤.jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, 中的錯(cuò)誤:java.lang.NoSuchMethodException: otherClass.outputStuff()
3 回答

富國(guó)滬深
TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊
代碼沒(méi)有錯(cuò)。主要方法應(yīng)該是
public static void main(String a[]){ new otherClass().otherstuff();}
這應(yīng)該足夠了。我們可以通過(guò)類(lèi)名從非靜態(tài)方法中調(diào)用靜態(tài)方法。
因此,要從 main 調(diào)用其他東西,要么將其他東西設(shè)為靜態(tài),要么創(chuàng)建 otherClass 的新實(shí)例并直接調(diào)用。

汪汪一只貓
TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊
你可以讓你的outputStuff
靜態(tài),它應(yīng)該工作,因?yàn)槟鞘悄阍噲D調(diào)用的方法

智慧大石
TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
主要方法應(yīng)該是 public static void main(String[] args)。從非靜態(tài)方法調(diào)用靜態(tài)方法非常好。
添加回答
舉報(bào)
0/150
提交
取消