我正在重构一些代码,并且遇到了以下问题:
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中使用的$
吗?
最佳答案
我猜该类是由RetroWeaver生成的。
它在处理后的类中生成一个称为class$
的方法,该方法委托给真正的Class.forName
方法,并将所有SomeClass.class
替换为class$("SomeClass")
。
不太相加的位:
我从来不了解这在反编译输出中是如何工作的,因为当类被反编译时,我从未在输出中看到上述方法。
您说您正在看的是.java文件,因此实际的class$()
方法必须完全可以编译,而且RetroWeaver仅适用于类文件,因此它暗示有人通过RetroWeaver处理了代码。然后将其反编译以生成其源代码,这似乎很奇怪。