groovy中使java必须import吗
2017-11-01 · 百度知道合伙人官方认证企业
第一种是调用groovy官方库里的类
第二种是调用自己写的groovy文本的类
缺点: 如果不安装groovy解释器和groovy Eclipse插件.就无法享受更多的对jdk 类的扩展, 已经脚本化语法的便捷.
脚本语言特点 无main,直接printf
第二步: jar依赖,maven库上传.
第三步: 推广成员安装groovy解释器和groovy Eclipse插件
1. 第一种. 如果用maven的话
在pom的 依赖项里加入.
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.2.2</version>
</dependency>
或者去官网下载grovvy的jar包,导入的eclipse的class依赖中.
就可以直接在java里调用 grovvy库里的类了.
( 如果Eclipse不会自动 import groovy的类,需要在.project中新增 <nature>org.eclipse.jdt.groovy.core.groovyNature</nature> )
import groovy.util.GroovyCollections;
import java.util.List;
public static void main(String[] args) {
List<Double> lists = new ArrayList<Double>();
lists.add(0.2);
lists.add(0.3);
lists.add(0.2);
Object sum = GroovyCollections.sum(lists);
System.out.println(sum);
}
====
2 第二种. 如果是自己写的groovy 文件.
假如如下 GrovvySystemConfigRead.groovy代码
[java] view plaincopy
/**
* Created by IntelliJ IDEA.
* User: Web-03
* Date: 11-4-21
* Time: 下午3:43
* To change this template use File | Settings | File Templates.
*/
class GrovvySystemConfigRead {
/*
* 读取邮件验证访问路径, ConfigurationHolder是groovy框架grais里的某个类
*/
static String getName(){
return "csdn" ;
}
}
public class JavaClassCallGroovy{
public static void main(String[] args) {
SystemConfigRead.getName();
}
}
/**
* JAVA调用GROOVY
* @throws IOException
* @throws IllegalAccessException
* @throws InstantiationException
* 添加人:**
* 添加时间:211-08-30 14:27
*/
public void groovyToJava() throws IOException, IllegalAccessException, InstantiationException {
ClassLoader parent = getClass().getClassLoader();
GroovyClassLoader loader = new GroovyClassLoader(parent);
//找到指定的groovy类
Class groovyClass = loader.parseClass(new File("site/grails-app/utils/com/ingping/core/SystemConfigRead.groovy"));
//将对象实例化并且强制转换为GroovyObject对象
GroovyObject groovyObject = (GroovyObject) groovyClass.newInstance();
//readEmailCodeUrl方法名,null 参数值,没有为null
System.out.println("" + groovyObject.invokeMethod("readEmailCodeUrl", null));
}
2.1 第一种调用,JAVA类(JavaClassCallGroovy)是可以直接调用GROOVY类(上面写好的SystemConfigRead)的。
(需要安装eclipse插件,自动把groovy文本文件编译为.class ,插件安装见
[java] view plaincopy
2.2 第二种,以反射脚本化方式调用(不推荐),实现脚本化调用,即脚本改动后,无需编译,自动执行的目的.
这种反射化调用不仅可以用在java类调用groovy类,也可以用在java类调用java类,实现java的脚本化.
[java] view plaincopy