繁体   English   中英

更改Java默认类(无覆盖)

[英]Change Java default classes (no override)

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

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

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

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

理解如何做到这一点并不那么简单所以我附上了关于这个主题的好指南:
1. 孙的官方指南。
2. JavaWorld - Java类加载器的基础知识
3. JournalDev代码示例
从反思的角度来看, Jenkov是关于这个主题的伟大指南

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM