概述
这段时间还是比较忙的博客也很久没写了 服务器也到期了一直没续费emmm
由于现在在写groovy的代码 所以这篇简单写点groovy相关的
1.Groovy和JAVA的区别
在Groovy中,将在运行时选择要调用的方法。这称为运行时调度或多方法。这意味着将在运行时根据参数的类型选择方法。在Java中,情况恰恰相反:方法是在编译时根据声明的类型选择的。
以下用Java代码编写的代码可以用Java和Groovy进行编译,但是它们的行为有所不同:
int method(String arg) {
return 1;
}
int method(Object arg) {
return 2;
}
Object o = "Object";
int result = method(o);
在Java中,您将拥有:
assertEquals(2, result);
而在Groovy中:
assertEquals(1, result);
这是因为Java将使用静态信息类型,该类型o被声明为Object,而Groovy将在运行时选择实际调用该方法的类型。由于它是带一个String,那么 String版本被调用。
2.隐式导入
默认情况下,
所有这些包和类都是导入的,即,您不必使用显式import语句来使用它们:
java.io. *
java.lang。*
java.math.BigDecimal
java.math.BigInteger
java.net。*
java.util。*
groovy.lang。*
groovy.util。*
3. Lambda表达式和方法引用运算符
Java 8+支持lambda表达式和方法引用运算符(::):
Runnable run = () -> System.out.println("Run"); // Java
list.forEach(System.out::println);
Groovy 3及更高版本在Parrot解析器中也支持这些功能。在Groovy的早期版本中,应改为使用闭包:
Runnable run = { println 'run' }
list.each { println it } // or list.each(this.&println)
4 在写代码的时候Groovy有一个坑
比如 我咋A类中有一个列表 并且注入了B类
在这个时候如果你使用了list.stream().parallel().foreach()在循环中
去掉用B类的方法是无法调用了 而且不会进入断点 直接进入异常
解决的话使用list.each{}就可以解决这个问题
好了 简单介绍一下 想学习得可以去看下 groovy得官网 http://www.groovy-lang.org/
最后
以上就是虚幻丝袜为你收集整理的groovy 和 java的区别_Groovy和JAVA的区别的全部内容,希望文章能够帮你解决groovy 和 java的区别_Groovy和JAVA的区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复