生成java和修改代码吗 java代码生成工具推荐( 三 )


06//省略动态编译Java源代码的相关代码,参见上一节
07boolean result = task.call();
08if (result) {
09ClassLoader loader = Calculator.class.getClassLoader();
10try {
11Class? clazz = loader.loadClass(className);
12Method method = clazz.getMethod(methodName, new Class?[] {});
13Object value = https://www.04ip.com/post/method.invoke(null, new Object[] {});
14return (Double) value;
15} catch (Exception e) {
16throw new CalculationException("内部错误 。");
17}
18} else {
19throw new CalculationException("错误的表达式 。");
20}
21}
上面的代码给出了使用动态生成的Java字节代码的基本模式,即通过类加载器来加载字节代码,创建Java类的对象的实例,再通过Java反射API来调用对象中的方法 。
Java字节代码增强
Java 字节代码增强指的是在Java字节代码生成之后,对其进行修改,增强其功能 。这种做法相当于对应用程序的二进制文件进行修改 。在很多Java框架中都可以见到这种实现方式 。Java字节代码增强通常与Java源文件中的注解(annotation)一块使用 。注解在Java源代码中声明了需要增强的行为及相关的元数据,由框架在运行时刻完成对字节代码的增强 。Java字节代码增强应用的场景比较多,一般都集中在减少冗余代码和对开发人员屏蔽底层的实现细节上 。用过JavaBeans的人可能对其中那些必须添加的getter/setter方法感到很繁琐,并且难以维护 。而通过字节代码增强,开发人员只需要声明Bean中的属性即可 , getter/setter方法可以通过修改字节代码来自动添加 。用过JPA的人,在调试程序的时候 , 会发现实体类中被添加了一些额外的 域和方法 。这些域和方法是在运行时刻由JPA的实现动态添加的 。字节代码增强在面向方面编程(AOP)的一些实现中也有使用 。
关于生成java和修改代码吗和java代码生成工具推荐的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读