`
Goodtiger
  • 浏览: 104098 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

为注释而修改类的字节码

    博客分类:
阅读更多
读了这段文字,我有一个地方没有想明白,就是红色的部分,为什么不能因为注释而修改类的字节码



注释在一些场景中非常有用。当不是直接修改行为而是增强行为时,特别是在添加样板代码的情况下,注释在诸如EJB和Web services这样的框架中运行得非常好。
注释不能用做预处理器。Sun的设计特别预防了完全因为注释而修改类的字节码。这样可以正确地理解该语言的成果,而且IDE之类的工具也可以执行深入的代码分析和重构之类的功能。
注释不是银弹。第一次遇到的时候,人们试图尝试各种技巧。请看下面这个从别人那里获得的建议:

public class Foo {
 
    @Property
    private int bar;
 
}

  其思想是为私有字段bar自动创建getter和setter方法。遗憾的是,这个想法有两个失败之处:1)它不能运行,2)它使代码难以阅读和处理它是无法实现的,因为前面已经提到了,Sun特别阻止了对出现注释的类进行修改。  即使是可能的,它也不是一个好主意,因为它使代码可读性差。第一次看到这段代码的人会不知道该注释创建了方法。此外,如果将来您需要在这些方法内部执行一些操作,注释也是没用的。总之,不要试图用注释去做那些常规代码可以完成的事情。

分享到:
评论

相关推荐

    Java理论与实践:在JDK早期版本中使用Java 5的语言特性

    本文介绍了Java 5中添加的...javac中不支持的-target jsr14选项可以为某些Java 5语言特性生成与JDK 1.4兼容的字节码,并且开源的Retroweaver和Retrotranslator项目能把多数Java 5字节码转换成与Java 1.4兼容的字节码。

    Java高级程序设计实战教程第一章-Java编码规范.pptx

    1.2.1 文件后缀名 表1-1 Java程序使用的文件后缀名 文件类别 文件后缀名 Java源文件 .java Java字节码文件 .class 其中两者最本质的区别在于,.Java文件是供虚拟机运行时执行的文件, 而.class文件可以让你在任何一...

    jdk-6u31-windows-x64

    Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。 Java虚拟机在执行字节码时,把字节码解释成具体...

    基于Java和JavaScript的图书管理系统设计源码

    项目共包含217个文件,其中JavaScript源代码文件58个,PNG图片文件30个,编译后的Java字节码文件22个,Java源代码文件22个,CSS样式文件18个,JPG图片文件17个,JSP页面文件13个,下载文件7个,MAP文件4个,以及...

    JAVA_API1.6文档(中文)

    java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt.print 为通用的打印 API 提供类和接口。 java.beans 包含与开发 beans 有关的类,...

    linux内核 0.11版本源码 带中文注释

    #define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10) // 将BCD 码转换成数字。 static void time_init (void) // 该子程序取CMOS 时钟,并设置开机时间??startup_time(秒)。 { struct tm time; do {...

    基于JSP和BS架构的学生信息管理系统设计源码

    项目共包含192个文件,其中XML配置文件57个,Java源代码文件57个,编译后的Java字节码文件43个,JSP页面文件13个,Properties配置文件8个,LST文件6个,IML文件4个,Git忽略配置文件1个,JSON文件1个,以及项目配置...

    基于Java和Javascript的游泳馆会员管理系统设计源码

    其中编译后的Java字节码文件83个,Java源代码文件25个,表单文件11个,XML配置文件7个,Git忽略配置文件2个,项目配置文件2个,项目许可证文件1个,Markdown文档文件1个,以及CSV文件1个。该系统提供了全面的游泳馆...

    Spring加载的:Java代理,可在运行中的JVM中重新加载类

    Spring Loaded可用于可能在JVM上运行的任何字节码,并且实际上是Grails 2中使用的重载系统。 安装 1.2.5现在已经发布: 1.2.6快照位于此repo区域(使用最新生成的.jar): 该下载是代理jar,使用前无需进一步解...

    牛客网BAT算法精品课练习题答案,包括JAVA和C++两个版本,代码中附上大量注释帮助理解程序.zip

    可移植性:Java字节码可以在所有安装了JVM的设备上执行,从服务器到嵌入式系统,再到移动设备和桌面应用。 健壮性与高性能:Java通过垃圾回收机制确保内存的有效管理,同时也能通过JIT编译器优化来提升运行时性能...

    [Java参考文档].JDK_API 1.6

    java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt.print 为通用的打印 API 提供类和接口。 java.beans 包含与开发 beans 有关的类,即...

    Java 1.6 API 中文 New

    java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt.print 为通用的打印 API 提供类和接口。 java.beans 包含与开发 beans 有关的类,即...

    VmBasic源程序

    释成二进制的字节码由虚拟机运行,本压缩档包含VmBasic和虚拟机VmBeta还有开发环 境的IDE以及它们所有的源程序,和开发文档,技术资料,关于程序的申明请见 license.txt。 VmBasic和VmBeta的所有源程序,文档...

    java api最新7.0

    java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt.print 为通用的打印 API 提供类和接口。 java.beans 包含与开发 beans 有关的类,即...

    JavaAPI1.6中文chm文档 part1

    java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt.print 为通用的打印 API 提供类和接口。 java.beans 包含与开发 beans 有关的类,...

    JavaAPI中文chm文档 part2

    java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt.print 为通用的打印 API 提供类和接口。 java.beans 包含与开发 beans 有关的类,...

    [Java参考文档]

    java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt.print 为通用的打印 API 提供类和接口。 java.beans 包含与开发 beans 有关的类,...

    JDK_1_6 API

    java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt.print 为通用的打印 API 提供类和接口。 java.beans 包含与开发 beans 有关的类,即...

Global site tag (gtag.js) - Google Analytics