快速业务通道

Classwo***ng工具箱: 注释(Annotation)与ASM - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
public Address(String street, String city, String state, String zip) {      m_street = street;      m_city = city;      m_state = state;      m_zip = zip;    }    public String getCity() {      return m_city;    }    public void setCity(String city) {      m_city = city;    }    ... } ... public class Name {    @ToString(order=1, text="") private String m_first;    @ToString(order=2, text="") private String m_middle;    @ToString(order=3, text="") private String m_last;    public Name() {}    public Name(String first, String middle, String last) {      m_first = first;      m_middle = middle;      m_last = last;    }    public String getFirst() {      return m_first;    }    public void setFirst(String first) {      m_first = first;    }    ... } ... public class Run {    public static void main(String[] args) {      Name name = new Name("Dennis", "Michael", "Sosnoski");      Address address = new Address("1234 5th St.", "Redmond", "WA", "98052");      Customer customer = new Customer(12345, name, address,        "425 555-1212", "425 555-1213");      System.out.println(customer);    } }

Classworking工具箱: 注释(Annotation)与ASM(8)

时间:2011-06-27 IBM Dennis Sosnoski

最后,清单 8 展示了测试运行的控制台输出(首行被折行以适合屏幕):

清单 8. 测试运行的控制台输出(首行被折行)

[dennis@notebook code]$ java -cp lib/asm-2.0.RC1.jar:lib/asm-commons-2.0.RC1.jar   :lib/tostring-agent.jar:classes -javaagent:lib/tostring-agent.jar   com.sosnoski.dwct.Run Processing class sun/misc/URLClassPath$FileLoader$1 Processing class com/sosnoski/dwct/Run Processing class com/sosnoski/dwct/Name Modifying com/sosnoski/dwct/Name Processing class com/sosnoski/dwct/Address Modifying com/sosnoski/dwct/Address Processing class com/sosnoski/dwct/Customer Modifying com/sosnoski/dwct/Customer Customer: #=12345   Name: Dennis Michael Sosnoski   Address: street=1234 5th St. city=Redmond state=WA zip=98052   homePhone=425 555-1212 dayPhone=425 555-1213

结束语

我已经演示了如何使用 ASM 和 J2SE 5.0 注释来完成自动的运行时类文件修改。我用作例子的 ToString 注释是有趣而且(至少对于我来说)比较有用的。单独使用时,并不妨碍代码的可读性。但是注释如果被用于各种不同目的(这种情况将来肯定要发生,因为有如此多的 Java 扩展正在编写或重写以使用注释),就很有可能会影响代码的可读性。

当我在后面的文章中研究注释和外部配置文件的权衡时,我会再回到这个问题上。我个人的观点是,二者都有自己的作用,虽然注释基本上是作为配置文件的更容易的替代方案而开发的,但是独立的配置文件在某些情况下仍然适用。明确地讲,我认为 ToString 注释是一个适当使用的例子!

使用 J2SE 5.0 扩展的一个局限是 JDK 1.5 编译器输出只能与 JDK 1.5 JVM 一起使用。下一篇 Classworking 工

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号