我是靠谱客的博主 虚幻丝袜,最近开发中收集的这篇文章主要介绍groovy 和 java的区别_Groovy和JAVA的区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这段时间还是比较忙的博客也很久没写了 服务器也到期了一直没续费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的区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部