【笔记】Java手动向内存中加载类

前言

Java手动向内存中加载类

正文

Opcodes.V1_8:JDK版本
Opcodes.ACC_PUBLIC:作用域
"Class1":类名
"com":包名
java/lang/Object:父类
null:接口

1
2
3
4
5
6
7
8
9
public class Demo extends ClassLoader {
public static void main(String[] args) {
// 定义一个类
ClassWriter classWriter = new ClassWriter(0);
byte[] code = classWriter.visit(Opcodes.V1_8, Opcodes.ACC_PUBLIC, "Class1", "com", "java/lang/Object", null).toByteArray();
// 加载一个类
test.defineClass("Class1", code, 0, code.length);
}
}

完成

参考文献

哔哩哔哩——黑马程序员