更改Java默认类(无覆盖)

时间:2016-08-25 13:32:13

标签: java android

是否有正确的方法来更改Java默认方法或类? 我正在使用通过TCP套接字进行通信的库,我希望捕获系统套接字调用并使用自定义调用来更改它(不更改库代码)。

3 个答案:

答案 0 :(得分:0)

没有非常darc的JVM魔术,这是不可能的。

答案 1 :(得分:0)

没有。这不可能。 JVM初始化时会加载执行所需的类,因此在使用OOPS范例之前无法更改默认类或方法。

答案 2 :(得分:0)

不简单,但可能!
您需要重载JVM默认classLoader,以便每次初始化新类时(例如静态System.out或非静态类new MyObject。) 每次加载新类时,JVM都会首先检查是否要以不同的方式初始化类。

理解如何做到这一点并不那么简单所以我附上了关于这个主题的好指南:
1. Sun's official guide.
2. JavaWorld - The basics of Java class loaders
3. JournalDev Code example
4.从反思的角度来看Jenkov's great guide on the subject