1、定义Java接口包含在Java中需要调用的Groovy方法

public interface IFoo { public Object run(Object foo); }

2、创建Groovy类实现该接口

class Foo implements IFoo {

public Object run(Object foo) {

println 'Hello World!'

x = 123

foo * 10 } }

3、动态载入Groovy类,创建接口实例,调用接口中定义的方法

import groovy.lang.GroovyClassLoader;

import java.io.File;

public class InvokeGroovy {

public static void main(String[] args) {

ClassLoader cl = new InvokeGroovy().getClass().getClassLoader();

GroovyClassLoader groovyCl = new GroovyClassLoader(cl);

try {

Class groovyClass = groovyCl.parseClass(new File("src/Foo.groovy"));

IFoo foo = (IFoo) groovyClass.newInstance();

System.out.println(foo.run(new Integer(2)));

} catch (Exception e) {

e.printStackTrace(); }

}

}[@more@]

groovy import java_在Java中调用Groovy方法的又一种方法:使用接口相关推荐

  1. Java中Double保留自定义小数位的几种方法

    Java中Double保留自定义小数位的几种方法 在Java语言编程中我们有时候会有保留指定小数位的需求,那应该如何操作呢,下面带来几种方法:(这里的所有方法以保留两位小数位为例) 一. 四舍五入并保 ...

  2. shell实例第19讲:一个脚本中调用另一个脚本的3种方法

    在Shell脚本中调用另一个脚本(3种方法) 准备:主脚本是second.sh,主脚本中调用first.sh 方法1:exec(1)执行方式:exec /home/weibo/shell_test/s ...

  3. JAVA中获取文件MD5值的四种方法

    JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...

  4. 【Groovy】闭包 Closure ( 闭包中调用 Groovy 脚本中的方法 | owner 与 delegate 区别 | 闭包中调用对象中的方法 )

    文章目录 一.闭包中调用 Groovy 脚本中的方法 二.owner 与 delegate 区别 三.闭包中调用 Groovy 对象中的方法 一.闭包中调用 Groovy 脚本中的方法 在 Groov ...

  5. groovy java_在java中使用groovy怎么搞

    临摹微笑 一种基于Java虚拟机的动态语言,可以和java无缝集成,正是这个特性,很多时候把二者同时使用,把groovy作为java的有效补充.对于Java程序员来说,学习成本几乎为零.同时支持DSL ...

  6. Java中调用C或C++的so文件方法

    1.引入依赖 compile 'net.java.dev.jna:jna:5.11.0' 2.封装工具类 public class SoUtil {/*** so库映射的接口*/private int ...

  7. java中日期比较方法_在java中进行日期时间比较的4种方法

    1. Date.compareTo() java.util.Date 提供了在 Java 中比较两个日期的经典方法compareTo(). 如果两个日期相等,则返回值为0. 如果Date在date参数 ...

  8. Java中加载properties文件的6种方法

    .使用java.util.Properties类的load()方法 示例: InputStream in = lnew BufferedInputStream(new FileInputStream( ...

  9. ant中调用外部ant任务的两种方法

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

最新文章

  1. BitMap 内存使用优化
  2. 使用govendor灵活管理Go程序中的依赖包
  3. java简体(繁体)转换器
  4. 利用rawcap抓包(自己发给自己的包裹)
  5. 笔记本高分屏字体模糊_高色域+高分辨率轻薄本推荐,你需要2K屏笔记本电脑么?...
  6. UA PHYS515A 电磁理论V 电磁波与辐射2 电磁波的能量
  7. 深度学习中的问题汇总(持续更新...)
  8. Linux驱动编程 step-by-step (六) 用户地址检测 简单模块调试 以及一些杂项
  9. 【SpringBoot】服务器端主动推送SSE技术讲解
  10. jzoj3682-Points and Segments【模型转化,欧拉回路】
  11. nload实时查看linux服务器网络流量的工具
  12. flowable实战(一)flowable与spring boot集成
  13. miniuidatagrid只允许修改某一列_State Processor API:如何读取,写入和修改 Flink 应用程序的状态...
  14. (42)Xilinx FIFO IP核配置(三)(第9天)
  15. 转发:一个复杂系统的拆分改造实践
  16. .JS replace方法替换所有字符
  17. Java Script之创建对象
  18. 浏览器地址栏传中文乱码
  19. 一篇文章玩转世界最强音乐Spotify API操作
  20. 432偏计算机编程,统计学考研432笔记

热门文章

  1. MTM:matlab实现1
  2. bash问题引起的centos系统不能启动
  3. [云炬创业基础笔记]第五章创业机会评估测试1
  4. [云炬创业基础笔记]第四章测试18
  5. 吐血整理!10 个机器学习教程汇总,爱可可推荐!
  6. 一次搞懂WCF 配置文件
  7. 数据库设计与查询语句的优化
  8. 关于开发系统后门软件的几点思路
  9. 为什么`malloc`出来的内存也能当成对象正常使用
  10. 【CyberSecurityLearning 附】Docker 初识