java調用不同模塊代碼 java不同包怎樣調用
Java中怎么根據不同的輸入數(shù)據類型調用不同的方法呢?
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)啊。
你應該判斷的是輸入的類型,然后確定最后結果的類型;
比如輸入兩個double,結果就是double;
輸入兩個int,結果就是int.
我是這樣想的,輸入時統(tǒng)一是字符串輸入。
帶“.”的認為是double,不帶的認為是int.
Java中是進行程序設計時,是怎樣實現(xiàn)模塊間的調用的?
什么叫模塊間的調用,模塊一說應該是面向過程編程里的概念,在這里就不知道你說的模塊是指什么東東。
如果是一個類要調用另一個類的方法,如果是靜態(tài)方法可以直接:類名.方法名()這樣調用。否則實例化類后再調用其中的方法。
如何在Java中調用Python代碼
Jython(原JPython),是一個用Java語言寫的Python解釋器。在沒有第三方模塊的情況下,通常選擇利用Jython來調用Python代碼,它是一個開源的JAR包,你可以到官網下載一個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代碼,上面代碼的輸出結果為:hello在Jvm中執(zhí)行Python腳本interpreter.execfile("D:/labs/mytest/hello.py");如上,將exec改為execfile就可以了。需要注意的是,這個.py文件不能含有第三方模塊,因為這個“Python腳本”最終還是在JVM環(huán)境下執(zhí)行的,如果有第三方模塊將會報錯:javaImportError:Nomodulenamedxxx僅在Java中調用Python編寫的函數(shù)先完成一個hello.py代碼:defhello():return'Hello'在Java代碼中調用這個函數(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__();//調用函數(shù)System.out.println(pyObject);}}上面的代碼執(zhí)行結果為:Hello即便只是調用一個函數(shù),也必須先加載這個.py文件,之后再通過Jython包中所定義的類獲取、調用這個函數(shù)。如果函數(shù)需要參數(shù),在Java中必須先將參數(shù)轉化為對應的“Python類型”,例如:__call__(newPyInteger(a),newPyInteger(b))a,b的類型為Java中的int型,還有諸如:PyString(Stringstring)、PyList(Iteratoriter)等。詳細可以參考官方的api文檔。包含第三方模塊的情況:一個手寫識別程序這是我和舍友合作寫的一個小程序,完整代碼在這里:,界面上引用了corejava上的一段代碼。Python代碼是舍友寫的,因為在Python程序中使用了第三方的NumPy模塊,導致無法通過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項目中新建一個類。然后在調用類中先進行被調用類實例化,然后通過實例化的對象訪問。
2、在Java項目中新建一個類,將該類中需要被調用的方法設置為靜態(tài)(static),加了static后,就可以用類名直接調用。然后在調用類中直接通過類名進行訪問。3、這樣就可以讓Java項目另一個類中的代碼跟這個類里面的代碼一起執(zhí)行了。
上一篇:java代碼建文件夾 java代碼創(chuàng)建文件
欄 目:Java編程
下一篇:沒有了
本文地址:http://mengdiqiu.com.cn/a1/Javabiancheng/17377.html
您可能感興趣的文章
- 04-11java代碼建文件夾 java代碼創(chuàng)建文件
- 04-11java組件容器布局代碼 java設置組件位置
- 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購物車應該用哪個集合實現(xiàn)
- 04-10穿梭框后端JAVA代碼 穿梭框如何獲取右邊數(shù)據
- 04-10java代碼打印信息嗎 java打印的代碼


閱讀排行
本欄相關
- 04-11java調用不同模塊代碼 java不同包怎樣
- 04-11java代碼建文件夾 java代碼創(chuàng)建文件
- 04-11java組件容器布局代碼 java設置組件位
- 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購物車應該
- 04-10穿梭框后端JAVA代碼 穿梭框如何獲取右
隨機閱讀
- 08-05織夢選擇特定的欄目搜索技巧
- 08-05解決dede聯(lián)動調用問題推薦方法
- 08-05織夢(dedecms)怎么修改網站面包屑導
- 08-05織夢sql、datalist等標簽中調用文章ur
- 01-10淺析Linux中crontab任務調度
- 01-10PL/SQL Developer過期的兩種解決方法
- 01-10Java編程多線程之共享數(shù)據代碼詳解
- 01-10C++形參與實參的區(qū)別實例解析
- 01-10C#創(chuàng)建線程帶參數(shù)的方法
- 08-05DedeCMS系統(tǒng)參數(shù)設置手冊之互動設置