class - 条件类导入/加载

标签 class groovy import

在 Groovy 脚本中是否可以执行条件导入语句?

if (test){
    import this.package.class
} else {
    import that.package.class
}

这件事的背景是想在只有 JDK1.5 的 MacOS 10.5 上使用一些东西,所以一个特定的类不可用,但我发现有人为它写了一个后向端口。

最佳答案

无法有条件地导入一个类,但您可以通过尝试加载该类然后在找不到该类时加载另一个类来实现类似的效果。

这里只是一个例子:

def someClass
try {
    someClass = "org.apache.webdavlib.WebdavFile" as Class
} catch (Exception ex) {
    someClass = "java.io.File" as Class
}

def someInstance = someClass.newInstance("~/project/temp.log")

assert "java.io.File" == someInstance.getClass().getName()

关于class - 条件类导入/加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7139743/

相关文章:

C++ 两个派生类中有彼此的对象(包括问题)

java - ehcache session 范围在 grails 中

javascript - React 导入组件名称冲突

variables - 如何使用 (ns ( :require :refer))

c++ - 我的逻辑有什么问题?我的 Vector 或对象不会 push_back 新对象。保持大小为 0

c# - C# 中类对象的排序列表

事件的 C# 实现

java - JMeter - 无法使用 CIFS Sampler(Groovy) 扩展网络带宽

groovy - 如何将常规表示转储到 YAML 并避免出现未标记的节点?

python - 循环导入 hell