Apache的BCEL库,文档很少,例子也很简单。动态构建类的工作,要求的只是并不是熟练使用BCEL类库本身,而是要对java的class结构了解。我对java的pcode也不熟悉,但是我曾经做过大量的.NET的反编译工作,两者类似,所以我用BCEL也不觉得困难。

我提供一个例子,这里例子是使用BCEL创建类的实例,而不是使用反射。

如下:

IFactory.java

}

FileClassLoader.java
使用bcel动态创建classimport java.io.ByteArrayOutputStream;
使用bcel动态创建classimport java.io.File;
使用bcel动态创建classimport java.io.FileInputStream;
使用bcel动态创建classimport java.io.IOException;
使用bcel动态创建class
}

buildFactory方法:
使用bcel动态创建classpublic static IFactory buildFactory(String procductClassName)
}

测试用例:
使用bcel动态创建classString className = "java.lang.Object";
使用bcel动态创建classIFactory factory 
= buildFactory(className);
使用bcel动态创建classObject inst 
= factory.newInstance();
使用bcel动态创建class
使用bcel动态创建class

相关文章:

  • 2022-12-23
  • 2021-06-19
  • 2022-01-05
  • 2021-07-17
  • 2021-10-29
  • 2021-12-15
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-25
  • 2021-07-20
  • 2022-12-23
  • 2022-02-24
  • 2022-02-02
相关资源
相似解决方案