GroovyClassLoader和导入

GroovyClassLoader和导入,第1张

概述我在我的 Java类中使用GroovyClassLoader来解析某个(理想情况下很复杂的)groovy文件(将在下一步执行): 在MyClass.java中调用 final Class parsedClass = groovyClassLoader.parseClass(groovyFile); 知道: > Groovy文件需要存储在文件系统中,因为需要在不重新部署的情况下进行更改. >这个gr 我在我的 Java类中使用GroovyClassLoader来解析某个(理想情况下很复杂的)groovy文件(将在下一步执行):

在MyClass.java中调用

final Class parsedClass = groovyClassLoader.parseClass(groovyfile);

知道:

> Groovy文件需要存储在文件系统中,因为需要在不重新部署的情况下进行更改.
>这个groovy文件需要几个导入

Groovyfile.groovy进口

import com.my.import.one.import1DTOimport com.my.import.two.import2DTOimport com.my.import.three.import3DTOimport com.my.import.four.import4DTOimport com.my.import.five.import5DTO

当调用parseClass方法时,此异常引发:

例外

unable to resolve class com.my.import.one.import1DTO;unable to resolve class com.my.import.two.import2DTO;unable to resolve class com.my.import.three.import3DTO;unable to resolve class com.my.import.four.import4DTO;unable to resolve class com.my.import.five.import5DTO;

在解析基类之前,我是否可以在不解析每个导入类的情况下获得我期望的行为?

谢谢!

解决方法 下面是一个示例MyClass.java,它使用GroovyClassLoader上的addClasspath()方法

import groovy.lang.GroovyClassLoader;public class MyClass {    public static voID main(String... args) {        GroovyClassLoader groovyClassLoader = new GroovyClassLoader();        // add "lib" to the classpath        groovyClassLoader.addClasspath("lib");        String groovyfile = "Groovyfile.groovy";        Class parsedClass = groovyClassLoader.parseClass(groovyfile);        System.out.println("class is " + parsedClass.toString());    }}

我假设DTO是用Groovy编写的,我们使用“myimport”,因为“my.import.x”会因非法语法而失败.如果我们有一个像这样的“lib”目录,那么编译后的类:

lib/com/myimport/one/import1DTO.groovylib/com/myimport/one/import1DTO.classlib/com/myimport/two/import2DTO.groovylib/com/myimport/two/import2DTO.class

并且Groovyfile.groovy存在于主目录中.例如

import com.myimport.one.import1DTOimport com.myimport.two.import2DTOprintln "hi there"

那么上面的Java代码对我有用.

我在类路径上使用Groovy 2.2.1和groovy-all-2.2.1.jar(对于GroovyClassLoader).

总结

以上是内存溢出为你收集整理的GroovyClassLoader和导入全部内容,希望文章能够帮你解决GroovyClassLoader和导入所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1220568.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存