Groovy和Java互调

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue" }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC" }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; min-height: 14.0px }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #dca10d }
span.s1 { font: 12.0px ".PingFang SC" }
span.s2 { font: 12.0px "Helvetica Neue" }

Scala和Java为静态语言,Groovy为动态语言

Scala: 函数式编程,同时支持面向对象

Groovy: jvm上的脚本,较好兼容java语法,Groovy加强了Java集成。

可配置化的优势,可以将一些简单的逻辑公开给外部编辑和使用,增强了互操作性,复杂逻辑来说,可配置化代码的调试则会比较麻烦

Scala和Java互相调用 

Scala调用java

定义java类,直接调用方法,或者直接import,再调用即可。

Java调用Scala

静态方法直接传递参数调用即可,非静态方法,new对象再调用方法

Groovy和Java互相调用

Groovy调用Java

groovy 调用 Java class ,只需要在类前导入该 Java 类,在 Groovy 代码中就可以无缝使用该 Java 类,可方便接入java sdk

Import Java library groovy

this.class.classLoader.rootLoader.addURL(new URL("file:///${currentDir}/lib/commons-net-3.3.jar")

User gradle

jar.archiveName ‘warO.jar‘

jar.manifest {

attributes ‘Main-Class‘ : ‘net.codetojoy.waro.Main‘

attributes ‘Class-Path‘ : ‘jars/groovy-all-1.6.4.jar jars/guava-collections-r03.jar jars/guava-base-r03.jar‘

}

#!/usr/bin/env groovy -cp ojdbc5.jar

Java 调用 Groovy

通过JAVA来加载如一个groovy脚本文件,然后调用该脚本中的方法

GroovyClassLoader invokeMethod

loader.parseClass(new File)

或者

通过设定CLASSPATH来初始化groovy脚本引擎,可以运行该path下的任何groovy脚本文件了

原文地址:https://www.cnblogs.com/kxdblog/p/10425864.html

时间: 2024-10-10 08:49:56

Groovy和Java互调的相关文章

用Groovy构建java脚本

我是做工作流项目的,工作流中各个模板引擎都需要要执行一个动态业务,这些动态业务有多种实现方式,最常用的就是用户自己写一段脚本文件,然后工作流引擎执行到这里的时候,运行这个脚本文件. 这个运行脚本文件的功能最初项目组是用ScriptEngineManager实现的.要求用户提供一个实现业务的jar,并写js脚本,脚本里动态地调用java内置在js引擎里的几个函数,这几个函数就是动态地调用jar里面的业务函数. 但是这样做太不方便,一是js无法调用java代码,只能预置java函数,或者通过预置的j

atitit groovy 总结java 提升效率

atitit groovy 总结java 提升效率 #---环境配置 1 #------安装麻烦的 2 三.创建groovy项目 2 3.  加入? Groovy 类 2 4.  编译执行groovy类 3 Groovy断点调试不生效的解决 4 Groovy实现执行原理 5 1. Groovy脚本的执行.. 5 2. Groovy类的执行.. 5 Groovy语法长处: 6 3. 动态类型def 6 4. 循环变量不须要def 6 5. String 和Gstring 6 6. 范围 6 7. 

groovy与java语法区别

groovy与java语法区别 Groovy试图对Java开发人员尽可能地兼容.在设计Groovy时,遵循最不意外的原则,尤其是对于那些来自Java背景的开发人员. 这里我们列出了Java和Groovy之间的所有主要区别. 1.额外的关键字 Groovy中比Java多一些关键字,不要将它们用于变量名称等. as def in trait 2.数组初始化 在Groovy中,{...}块保留用于闭包.这意味着您无法使用以下语法创建数组字面量: // java初始化 int[] array = { 1

Groovy与Java集成常见的坑

摘要: groovy特性 Groovy是一门基于JVM的动态语言,同时也是一门面向对象的语言,语法上和Java非常相似.它结合了Python.Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码. Java作为一种通用.静态类型的编译型语 groovy特性 Groovy是一门基于JVM的动态语言,同时也是一门面向对象的语言,语法上和Java非常相似.它结合了Python.Ruby和Smalltalk的许多强大的特性,Groovy

cocos2dx---c++与java互调

使用cocos2dx开发游戏过程中难免需要调用其他代码,因为其是跨平台的.必然会要去调用不同平台的代码,这篇博客就介绍如何使用Jni来实现c++与java代码的互调. 先实现c++调用Android的java层代码.我们先添加一个类,比如类名叫CallJava,下面贴上代码,再做解释: 1 #ifndef __CALL_JAVA_H__ 2 #define __CALL_JAVA_H__ 3 4 #include "cocos2d.h" 5 USING_NS_CC; 6 7 #if (

通过jni实现c++和java互调

1.java调用c++ 首先,在java中声明相关方法 public static native void doLogin(String sid); public static native void doBindingSuc(String sid); 相关的调用方法如下: public void login() { this.runOnUiThread(new Runnable() { public void run() { //下面部分为sdk提供的参数,可以不用管 TYGame.login

cocos2d-x 2.2.6中c++通过JNI与java互调

1.HelloCpp.java 1 /**************************************************************************** 2 Copyright (c) 2010-2012 cocos2d-x.org 3 4 http://www.cocos2d-x.org 5 6 Permission is hereby granted, free of charge, to any person obtaining a copy 7 of

cocos js js java互调 (如何在ANDROID平台上使用JS直接调用JAVA)

在cocos2d-js 3.0beta中加入了一个新特性,在android平台上我们可以通过反射直接在js中调用java的静态方法.它的使用方法很简单: var o = jsb.reflection.callStaticMethod(className, methodName, methodSignature, parameters...) 在callStaticMethod方法中,我们通过传入Java的类名,方法名,方法签名,参数就可以直接调用Java的静态方法,并且可以获得Java方法的返回

【java web】java执行预编译Groovy脚本

在JVM中运行Groovy类有两种方式: 使用Groovy编译所有的*.groovy为java的*.class文件,把这些*.class文件放在java类路径中,通过java类加载器来加载这些类. 通过groovy类加载器在运行时直接加载*.groovy文件并生成对象.在这种方式下,没有生成任何*.class,但是生成了一个java.lang.Class对象的实例. 下面介绍前一种使用Groovy的方法:编译成java字节码并且作为正常java应用程序运行在java虚拟机上,即预编译模式. 1.