我们正在生成配置脚本,稍后我们将使用ConfigSlurper进行解析。我们生成的遗留源是命名中的自由格式,因此在某些情况下,有些名称也是类名。这可能会导致以下情况:
new ConfigSlurper().parse("File = 'foo'")
这会触发错误:“你试图为类'java.io.File'赋值”
因此,如果属性名称是应用程序范围内的类名,我们希望提前检测到,并采取相应的操作。 目前我们正在做类似的事情:
pName = 'Currency'
Eval.me("new ${pName}()")
然后处理抛出的Exceptions以确定pName是否包含类名。
这似乎是一种过于昂贵的方式来进行此测试,并且最好我们不想使用Eval。 有没有更好的方法来测试作为类名的值?