java調(diào)用不同模塊代碼 java不同包怎樣調(diào)用
Java中怎么根據(jù)不同的輸入數(shù)據(jù)類型調(diào)用不同的方法呢?
public int add(int a,int b){
return a+b;
}
public double add(int a,double b){
return a+b;
}
public double add(double a,int b){
return a+b;
}
public double add(double a,double b){
return a+b;
}
這些代碼可以實現(xiàn)啊。
你應(yīng)該判斷的是輸入的類型,然后確定最后結(jié)果的類型;
比如輸入兩個double,結(jié)果就是double;
輸入兩個int,結(jié)果就是int.
我是這樣想的,輸入時統(tǒng)一是字符串輸入。
帶“.”的認(rèn)為是double,不帶的認(rèn)為是int.
Java中是進行程序設(shè)計時,是怎樣實現(xiàn)模塊間的調(diào)用的?
什么叫模塊間的調(diào)用,模塊一說應(yīng)該是面向過程編程里的概念,在這里就不知道你說的模塊是指什么東東。
如果是一個類要調(diào)用另一個類的方法,如果是靜態(tài)方法可以直接:類名.方法名()這樣調(diào)用。否則實例化類后再調(diào)用其中的方法。
如何在Java中調(diào)用Python代碼
Jython(原JPython),是一個用Java語言寫的Python解釋器。在沒有第三方模塊的情況下,通常選擇利用Jython來調(diào)用Python代碼,它是一個開源的JAR包,你可以到官網(wǎng)下載一個HelloPython程序importorg.python.util.PythonInterpreter;publicclassHelloPython{publicstaticvoidmain(String[]args){PythonInterpreterinterpreter=newPythonInterpreter();interpreter.exec("print('hello')");}}什么是PythonInterpreter?它的中文意思即是“Python解釋器”。我們知道Python程序都是通過解釋器來執(zhí)行的,我們在Java中創(chuàng)建一個“解釋器”對象,模擬Python解釋器的行為,通過exec("Python語句")直接在JVM中執(zhí)行Python代碼,上面代碼的輸出結(jié)果為:hello在Jvm中執(zhí)行Python腳本interpreter.execfile("D:/labs/mytest/hello.py");如上,將exec改為execfile就可以了。需要注意的是,這個.py文件不能含有第三方模塊,因為這個“Python腳本”最終還是在JVM環(huán)境下執(zhí)行的,如果有第三方模塊將會報錯:javaImportError:Nomodulenamedxxx僅在Java中調(diào)用Python編寫的函數(shù)先完成一個hello.py代碼:defhello():return'Hello'在Java代碼中調(diào)用這個函數(shù):importorg.python.core.PyFunction;importorg.python.core.PyObject;importorg.python.util.PythonInterpreter;publicclassHelloPython{publicstaticvoidmain(String[]args){PythonInterpreterinterpreter=newPythonInterpreter();interpreter.execfile("D:/labs/hello.py");PyFunctionpyFunction=interpreter.get("hello",PyFunction.class);//第一個參數(shù)為期望獲得的函數(shù)(變量)的名字,第二個參數(shù)為期望返回的對象類型PyObjectpyObject=pyFunction.__call__();//調(diào)用函數(shù)System.out.println(pyObject);}}上面的代碼執(zhí)行結(jié)果為:Hello即便只是調(diào)用一個函數(shù),也必須先加載這個.py文件,之后再通過Jython包中所定義的類獲取、調(diào)用這個函數(shù)。如果函數(shù)需要參數(shù),在Java中必須先將參數(shù)轉(zhuǎn)化為對應(yīng)的“Python類型”,例如:__call__(newPyInteger(a),newPyInteger(b))a,b的類型為Java中的int型,還有諸如:PyString(Stringstring)、PyList(Iteratoriter)等。詳細(xì)可以參考官方的api文檔。包含第三方模塊的情況:一個手寫識別程序這是我和舍友合作寫的一個小程序,完整代碼在這里:,界面上引用了corejava上的一段代碼。Python代碼是舍友寫的,因為在Python程序中使用了第三方的NumPy模塊,導(dǎo)致無法通過Jython執(zhí)行。下面這個方法純粹是個人思路,沒有深入查資料。核心代碼如下:importjava.io.*;classPyCaller{privatestaticfinalStringDATA_SWAP="temp.txt";privatestaticfinalStringPY_URL=System.getProperty("user.dir")+"\\test.py";publicstaticvoidwriteImagePath(Stringpath){PrintWriterpw=null;try{pw=newPrintWriter(newFileWriter(newFile(DATA_SWAP)));}catch(IOExceptione){e.printStackTrace();}pw.print(path);pw.close();}publicstaticStringreadAnswer(){BufferedReaderbr;Stringanswer=null;try{br=newBufferedReader(newFileReader(newFile(DATA_SWAP)));answer=br.readLine();}catch(FileNotFoundExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}returnanswer;}publicstaticvoidexecPy(){Processproc=null;try{proc=Runtime.getRuntime().exec("python"+PY_URL);proc.waitFor();}catch(IOExceptione){e.printStackTrace();}catch(InterruptedExceptione){e.printStackTrace();}}//測試碼publicstaticvoidmain(String[]args)throwsIOException,InterruptedException{writeImagePath("D:\\labs\\mytest\\test.jpg");execPy();System.out.println(readAnswer());}}實際上就是通過Java執(zhí)行一個命令行指令。
Java項目怎樣讓另一個類中的代碼跟這個類里面的代碼一起執(zhí)行
1、在Java項目中新建一個類。然后在調(diào)用類中先進行被調(diào)用類實例化,然后通過實例化的對象訪問。
2、在Java項目中新建一個類,將該類中需要被調(diào)用的方法設(shè)置為靜態(tài)(static),加了static后,就可以用類名直接調(diào)用。然后在調(diào)用類中直接通過類名進行訪問。3、這樣就可以讓Java項目另一個類中的代碼跟這個類里面的代碼一起執(zhí)行了。
上一篇:java代碼建文件夾 java代碼創(chuàng)建文件
欄 目:Java編程
下一篇:沒有了
本文標(biāo)題:java調(diào)用不同模塊代碼 java不同包怎樣調(diào)用
本文地址:http://mengdiqiu.com.cn/a1/Javabiancheng/17377.html
您可能感興趣的文章
- 04-11java代碼建文件夾 java代碼創(chuàng)建文件
- 04-11java組件容器布局代碼 java設(shè)置組件位置
- 04-11java自增長代碼 java自增變量
- 04-11java輪播圖片代碼 java實現(xiàn)輪播圖
- 04-11Java代碼侵入性強 java可以入侵系統(tǒng)嗎
- 04-11java源代碼大全小程序 java代碼源碼
- 04-11java代碼自動優(yōu)化 java優(yōu)化代碼常見套路
- 04-11java購物車原代碼實現(xiàn) java購物車應(yīng)該用哪個集合實現(xiàn)
- 04-10穿梭框后端JAVA代碼 穿梭框如何獲取右邊數(shù)據(jù)
- 04-10java代碼打印信息嗎 java打印的代碼


閱讀排行
本欄相關(guān)
- 04-11java調(diào)用不同模塊代碼 java不同包怎樣
- 04-11java代碼建文件夾 java代碼創(chuàng)建文件
- 04-11java組件容器布局代碼 java設(shè)置組件位
- 04-11java自增長代碼 java自增變量
- 04-11java輪播圖片代碼 java實現(xiàn)輪播圖
- 04-11Java代碼侵入性強 java可以入侵系統(tǒng)嗎
- 04-11java源代碼大全小程序 java代碼源碼
- 04-11java代碼自動優(yōu)化 java優(yōu)化代碼常見套
- 04-11java購物車原代碼實現(xiàn) java購物車應(yīng)該
- 04-10穿梭框后端JAVA代碼 穿梭框如何獲取右
隨機閱讀
- 08-05織夢選擇特定的欄目搜索技巧
- 08-05解決dede聯(lián)動調(diào)用問題推薦方法
- 08-05織夢(dedecms)怎么修改網(wǎng)站面包屑導(dǎo)
- 08-05織夢sql、datalist等標(biāo)簽中調(diào)用文章ur
- 01-10淺析Linux中crontab任務(wù)調(diào)度
- 01-10PL/SQL Developer過期的兩種解決方法
- 01-10Java編程多線程之共享數(shù)據(jù)代碼詳解
- 01-10C++形參與實參的區(qū)別實例解析
- 01-10C#創(chuàng)建線程帶參數(shù)的方法
- 08-05DedeCMS系統(tǒng)參數(shù)設(shè)置手冊之互動設(shè)置