package test;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
public class MyClassLoader extends ClassLoader{
public MyClassLoader(ClassLoader parent) {
super(parent);
}
public Class loadClass(String name) throws ClassNotFoundException {
if(!"test.MyObject".equals(name))
return super.loadClass(name);
try {
String url = "file:C:\\Users\\Admin\\Desktop\\javaCode\\reloadTest\\bin\\test\\MyObject.class";
URL myUrl = new URL(url);
URLConnection connection = myUrl.openConnection();
InputStream input = connection.getInputStream();
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int data = input.read();
while(data != -1){
buffer.write(data);
data = input.read();
}
input.close();
byte[] classData = buffer.toByteArray();
return defineClass("test.MyObject",
classData, 0, classData.length);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) throws Exception {
ClassLoader parentClassLoader = MyClassLoader.class.getClassLoader();
MyClassLoader classLoader = new MyClassLoader(parentClassLoader);
Class myObjectClass = classLoader.loadClass("test.MyObject");
Object object1 = myObjectClass.newInstance();
classLoader = new MyClassLoader(parentClassLoader);
myObjectClass = classLoader.loadClass("test.MyObject");
object1 = myObjectClass.newInstance();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
java类重载,可以用于热更新
共15个文件
java:4个
class:4个
properties:2个
需积分: 50 14 下载量 189 浏览量
2018-03-15
11:16:55
上传
评论
收藏 1.11MB ZIP 举报
温馨提示
这个是用来java中类的重载的,可以拟补java作为静态语言的一些问题
资源推荐
资源详情
资源评论
收起资源包目录
reloadTest.zip (15个子文件)
reloadTest
.project 386B
src
test
MyObjectSuperClass.java 57B
AnInterface2.java 51B
MyObject.java 144B
MyClassLoader.java 2KB
log4j.properties 988B
lib
log4j-1.2.17.jar 478KB
javassist.jar 741KB
.settings
org.eclipse.jdt.core.prefs 598B
.classpath 416B
bin
test
MyObject.class 259B
MyClassLoader.class 2KB
MyObjectSuperClass.class 289B
AnInterface2.class 271B
log4j.properties 988B
共 15 条
- 1
资源评论
来过又走了
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功