groovy如何调用java
调用 Java 类和方法
Groovy 与 Java 无缝集成,可以直接调用 Java 类和库。Groovy 代码可以直接导入 Java 类并使用其方法,语法与 Java 类似。
import java.util.ArrayList
List<String> list = new ArrayList<>()
list.add("Groovy")
list.add("Java")
println(list)
使用 Java 静态方法
Groovy 可以直接调用 Java 类的静态方法,无需额外语法。
import java.lang.Math
double result = Math.sqrt(25)
println(result) // 输出 5.0
调用 Java Bean 属性
Groovy 提供了更简洁的方式访问 Java Bean 的属性,可以直接使用属性名而非 getter/setter 方法。
import java.time.LocalDate
LocalDate date = LocalDate.now()
println(date.year) // 直接访问属性,而非 getYear()
使用 Java 接口和匿名类
Groovy 可以轻松实现 Java 接口,支持闭包简化匿名类的写法。
Runnable runnable = { println("Running in Groovy") } as Runnable
new Thread(runnable).start()
调用 Java 可变参数方法
Groovy 可以正确处理 Java 的可变参数(varargs)方法,无需特殊处理。
import java.util.Arrays
List<String> items = Arrays.asList("Groovy", "Java", "Kotlin")
println(items)
处理 Java 异常
Groovy 的异常处理语法与 Java 一致,可以直接捕获 Java 异常。
try {
Integer.parseInt("abc")
} catch (NumberFormatException e) {
println("Invalid number format")
}
使用 Java 泛型
Groovy 支持 Java 泛型,但在运行时类型擦除仍存在,与 Java 行为一致。
List<Integer> numbers = new ArrayList<>()
numbers.add(1)
// numbers.add("text") // 编译时类型检查(在 @CompileStatic 模式下)
println(numbers)
使用 Java 数组
Groovy 可以创建和操作 Java 数组,语法与 Java 类似。
String[] names = ["Groovy", "Java", "Scala"]
println(names[0])
调用 Java 构造方法
Groovy 支持调用 Java 构造方法,并可省略括号以增强可读性。
import java.io.File
File file = new File("example.txt")
println(file.exists())
使用 Java 注解
Groovy 完全兼容 Java 注解,可以直接在类或方法上使用。
@Override
String toString() {
"Groovy toString"
}
通过以上方式,Groovy 可以无缝调用 Java 代码,同时提供更简洁的语法和增强的功能。







