在 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/