基于Scala和Java方法的相互调用
作者:长河 时间:2021-07-05 11:53:04
在Scala中调用java的方法,很简单,直接导入传递参数就可以进行调用了.
在Java中调用Scala的方法呢?
经过测试,也是很简单,静态方法直接传递参数,就可以调用了,非静态的方法,使用对象也可以调用方法
具体如下:
1.首先是静态方法
object ScalaObjectDemo extends App {
println("hello cc i miss you very much");
def say(name:String){
println(name)
}
/**
* 先去调用java方法
* @return
*/
def say3(): Int ={
println("这里是scala的方法了")
var tmp=JavaDemo.say2("4");
println(tmp);
tmp
}
}
2. JAVA中调用Scala的方法
public class JavaDemo {
public static void main(String[] args) {
ScalaObjectDemo.main(new String[]{});
ScalaObjectDemo.say("cc ");
//测试反复的方法调用
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中的非静态方法
class ScalaClassDemo {
def hi(name:String):Int={
println(name)
1
}
}
4.Java中的调用
int zhaojun = new ScalaClassDemo().hi("cc");
System.out.println(zhaojun);
经过测试全部能正常运行。
scala中调用java方法报错
有一个java方法返回一个对象
public Map<String, String> getFieldTypeMap() {
...
}
现在在scala中调用该方法
val fieldTypeMap = someObject.getFieldTypeMap()
val innerSQL = fieldTypeMap.map { case (key: String, value: String) => key.replace(".", "_")}.toStream.sorted.reduce(_ + "," + _)
报错:
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
然后在使用时用toScala:
val fieldTypeMap = someObject.getFieldTypeMap()
val innerSQL = fieldTypeMap.toScala.map { case (key: String, value: String) => key.replace(".", "_")}.toStream.sorted.reduce(_ + "," + _)
来源:https://changhe.blog.csdn.net/article/details/78885009
标签:Scala方法,调用,Java方法
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
C#使用Matrix执行缩放的方法
2022-05-03 15:46:58
C#如何将DataTable导出到Excel解决方案
2022-03-30 18:44:28
java中TreeMap排序的示例代码
2023-02-17 15:39:30
Spring的@Validation和javax包下的@Valid区别以及自定义校验注解
2021-06-20 04:06:35
Springboot实现Shiro整合JWT的示例代码
2022-01-30 02:58:32
![](https://img.aspxhome.com/file/2023/1/65601_0s.png)
简单探索 Java 中的惰性计算
2023-11-16 20:25:28
C#使用opencv截取旋转矩形区域图像的实现示例
2023-11-12 22:20:44
![](https://img.aspxhome.com/file/2023/2/70412_0s.png)
java 获取字节码文件的几种方法总结
2023-11-29 15:17:57
基于Mybatis plus 自动代码生成器的实现代码
2023-11-24 10:40:51
Java Set集合去重的原理及实现
2023-08-11 10:56:11
![](https://img.aspxhome.com/file/2023/5/70565_0s.png)
java中匿名内部类详解
2022-10-06 14:56:56
C# dump系统lsass内存和sam注册表详细
2021-06-26 12:19:53
![](https://img.aspxhome.com/file/2023/9/70429_0s.jpg)
SpringBoot异步调用方法并接收返回值
2023-08-16 22:33:49
![](https://img.aspxhome.com/file/2023/5/58055_0s.jpg)
springboot+log4j.yml配置日志文件的方法
2023-08-07 11:33:17
![](https://img.aspxhome.com/file/2023/5/67955_0s.png)
修改maven本地仓库路径的方法
2022-08-09 13:44:16
java.sql.Date和java.util.Date的区别详解
2023-11-28 16:15:09
Spring Boot Security 结合 JWT 实现无状态的分布式API接口
2021-06-04 05:01:17
C#-WinForm跨线程修改UI界面的示例
2022-01-14 13:25:44
![](https://img.aspxhome.com/file/2023/0/76420_0s.png)
Spring Boot配置AOP打印日志的全过程
2023-08-07 12:56:38
英语单词state与status的区别
2021-09-04 13:57:34