java混淆of_java – 是否有任何级别的混淆可以“欺骗”instanceof?

我一直在玩这个,到目前为止我还没有找到任何方法来隐藏或欺骗instanceof通过混淆层隐藏其类型来返回false,但这并不意味着它不可能因为我是远离最了解

Java的人.所以我来问专家.

我尝试了以下组合,并且在每种情况下,instanceof运算符都能够识别对象的真/基类型.

public class Test {

public static void main(String[] args) {

Object o = new TestObject();

printType("Base Class", o);

o = (TestSuperObject)(new TestObject());

printType("Super Class", o);

o = (TestInterface)(new TestObject());

printType("Interface", o);

o = (TestInterface)((TestSuperObject3)(new TestObject3()));

printType("Interface on Super Class", o);

o = (TestSuperObject3)((TestInterface)(new TestObject3()));

printType("Super Class on Interface", o);

}

private static void printType(String testCase, Object o) {

System.out.println(testCase);

System.out.println("TestObject:" + (o instanceof TestObject));

System.out.println("TestObject2:" + (o instanceof TestObject2));

System.out.println("TestObject3:" + (o instanceof TestObject3));

System.out.println();

}

}

这些类被定义为……

public class TestObject extends TestSuperObject implements TestInterface

public class TestObject2 extends TestSuperObject implements TestInterface

public interface TestInterface

public class TestSuperObject

public class TestObject3 extends TestSuperObject3

public class TestSuperObject3 implements TestInterface

所以基本上,有没有办法隐藏这些信息或以某种方式丢失类型信息?我没有问,因为我有理由这样做,但是如果可能的话,我希望知道并在将来保持警惕.另外,我觉得它很有趣.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值