我正在重构一些代码,但我遇到了以下情况:
class$com$companyname$paymentservice$utility$TheClass == null ? (class$com$companyname$common$crypto$TheClass = class$("com.companyname.common.crypto.TheClass")) : class$com$companyname$common$crypto$TheClass)
虽然我知道三元运算符应该做什么,但我从来没有见过像这样的类的定义或调用这样的方法。有没有人知道这个class$
甚至是$
在Java中的用途是什么?
答案 0 :(得分:0)
我猜这个班级是由RetroWeaver生成的。
它在已处理的类中生成一个名为class$
的方法,该方法委派给真正的Class.forName
方法,并用SomeClass.class
替换所有class$("SomeClass")
。
这些不完全相加的部分:
class$()
方法必须在某处才能编译它,但是,RetroWeaver只适用于类文件,所以它意味着有人通过RetroWeaver处理代码然后反编译它以产生他们的源代码,这似乎是一件奇怪的事情。