有一个经过ProGuard混淆的 jar 包,里面有一个类:SDLicense,其中有三个同名方法 a,签名相同,而返回类型不同,如图所示:
如果手工这样写肯定是不能编译的,混淆器是怎么办到的呢?另外,虽然方法 a 是public 的,但是外部也不能调用,调用时出现下面的异常:
Exception in thread "main" java.lang.NullPointerException
at se.syntropy.common.SDLicense.a(Unknown Source)
at Test.main(Test.java:11)
jar 包中的其它类却能调用 SDLicense 的三个方法 a,实在迷惑不解,要是哪位高手路过,望请有点迷津,先在此谢过了。