基于Scala和Java方法的相互調(diào)用
在Scala中調(diào)用java的方法,很簡(jiǎn)單,直接導(dǎo)入傳遞參數(shù)就可以進(jìn)行調(diào)用了.
在Java中調(diào)用Scala的方法呢?
經(jīng)過(guò)測(cè)試,也是很簡(jiǎn)單,靜態(tài)方法直接傳遞參數(shù),就可以調(diào)用了,非靜態(tài)的方法,使用對(duì)象也可以調(diào)用方法
具體如下:
1.首先是靜態(tài)方法
object ScalaObjectDemo extends App { println("hello cc i miss you very much"); def say(name:String){ println(name) } /** * 先去調(diào)用java方法 * @return */ def say3(): Int ={ println("這里是scala的方法了") var tmp=JavaDemo.say2("4"); println(tmp); tmp } }
2. JAVA中調(diào)用Scala的方法
public class JavaDemo { public static void main(String[] args) { ScalaObjectDemo.main(new String[]{}); ScalaObjectDemo.say("cc "); //測(cè)試反復(fù)的方法調(diào)用 int say3 = ScalaObjectDemo.say3(); System.out.println(say3); } public static int say2(String age){ System.out.println("這里是java的static 方法了"+age); return Integer.parseInt(age); } }
3.Scala中的非靜態(tài)方法
class ScalaClassDemo { def hi(name:String):Int={ println(name) 1 } }
4.Java中的調(diào)用
int zhaojun = new ScalaClassDemo().hi("cc"); System.out.println(zhaojun);
經(jīng)過(guò)測(cè)試全部能正常運(yùn)行。
scala中調(diào)用java方法報(bào)錯(cuò)
有一個(gè)java方法返回一個(gè)對(duì)象
public Map<String, String> getFieldTypeMap() { ... }
現(xiàn)在在scala中調(diào)用該方法
val fieldTypeMap = someObject.getFieldTypeMap() val innerSQL = fieldTypeMap.map { case (key: String, value: String) => key.replace(".", "_")}.toStream.sorted.reduce(_ + "," + _)
報(bào)錯(cuò):
Error:(19, 35) value map is not a member of java.util.Map[String,String]
val structureSQL = fieldTypeMap.map{ case (key: String, value: String) => key.replace(".", "_")
需要添加:
@Deprecated import scala.collection.JavaConversions._
需要添加:
import scala.collection.JavaConverters.mapAsScalaMapConverter
然后在使用時(shí)用toScala:
val fieldTypeMap = someObject.getFieldTypeMap() val innerSQL = fieldTypeMap.toScala.map { case (key: String, value: String) => key.replace(".", "_")}.toStream.sorted.reduce(_ + "," + _)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
logback-spring.xml的配置及示例詳解(直接復(fù)制粘貼可用)
在使用logback作為日志框架時(shí),可以創(chuàng)建一個(gè)名為logback-spring.xml的配置文件來(lái)自定義日志輸出的格式和方式,下面這篇文章主要給大家介紹了關(guān)于logback-spring.xml的配置及示例詳解的相關(guān)資料,文中的代碼直接復(fù)制粘貼可用,需要的朋友可以參考下2024-01-01SpringMVC后端Controller頁(yè)面跳轉(zhuǎn)的三種方式匯總
這篇文章主要介紹了SpringMVC后端Controller頁(yè)面跳轉(zhuǎn)的三種方式匯總,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10Maven安裝本地的jar包和創(chuàng)建帶模板的自定義項(xiàng)目的操作過(guò)程
這篇文章主要介紹了Maven安裝本地的jar包和創(chuàng)建帶模板的自定義項(xiàng)目,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-03-03Java 最優(yōu)二叉樹(shù)的哈夫曼算法的簡(jiǎn)單實(shí)現(xiàn)
這篇文章主要介紹了Java 最優(yōu)二叉樹(shù)的哈夫曼算法的簡(jiǎn)單實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10如何基于Spring使用工廠模式實(shí)現(xiàn)程序解耦
這篇文章主要介紹了如何基于Spring使用工廠模式實(shí)現(xiàn)程序解耦,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12IDEA卡在”正在解析Maven依賴項(xiàng)“的解決方法
在創(chuàng)建新的SpringBoot項(xiàng)目時(shí),始終卡在"正在解析Maven依賴項(xiàng)…",本文小編給大家介紹了幾種相關(guān)的解決方案,具有一定的參考價(jià)值,需要的朋友可以參考下2023-11-11Java實(shí)現(xiàn)ip地址和int數(shù)字的相互轉(zhuǎn)換
這篇文章主要介紹了Java實(shí)現(xiàn)ip地址和int數(shù)字的相互轉(zhuǎn)換,幫助大家更好的利用Java處理數(shù)據(jù),感興趣的朋友可以了解下2020-09-09