锁定老帖子 主题:传说中的Java动态注释?
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-10-18
动态注释是一个有用的功能。它可以使用多行的字符串来指定在行中测试数据并保存到相对应的记录文件中。
但是Java本身并不提供动态注释的功能,我已经在Java中实现了一个简单的多行动态注释的功能,下面看看代码: /** * @param args */ public static void main(String[] args) { System.out.println(S(/* Wow, we finally have multiline strings in Java! HOOO!*/)); } Wow, we finally have multiline strings in Java! HOOO!
好了,开始解答... 首先,得把源代码文件放到classpath下,然后用下面的代码就可以实现啦: public static String S() { StackTraceElement element = new RuntimeException().getStackTrace()[1]; String name = element.getClassName().replace('.', '/') + ".java"; InputStream in = getClassLoader().getResourceAsStream(name); String s = convertStreamToString(in, element.getLineNumber()); return s.substring(s.indexOf("/*")+2, s.indexOf("*/")); } 或许,它可以加入一些更酷的功能,例如 Groovy、BeanShell 等等。
大家有什么想法,一起来参与讨论哟~ 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-10-18
晕,我还真不知道可以这样!
|
|
返回顶楼 | |
发表时间:2008-10-18
有什么实际用途,和 log 工具的原理有什么不同?
|
|
返回顶楼 | |
发表时间:2008-10-18
我想,以后SQL也可以有理由不用StringBuffer拼接得那么辛苦了
在打印debug日志的时候,往往为了tail得方便,我都会用StringBuffer/Builder把SQL语句拼接得好看一些,后来我是把SQL写到xml中,这样不仅方便vi,也能顺利实现目标。 这种方法可能也能对我以后的项目起到一些积极的作用,晕了,我还真不知道可以这样,哇哈哈,不管怎么说,算是学到了一招,谢谢分享。 |
|
返回顶楼 | |
发表时间:2008-10-18
我只有一个感觉, 搞笑
|
|
返回顶楼 | |
发表时间:2008-10-18
还得把源代码带上?
|
|
返回顶楼 | |
发表时间:2008-10-19
思路有点特别,一般人不会想到可以这样来做.可以作其它方式进行改进.S(结构)看着有点别扭.
|
|
返回顶楼 | |
发表时间:2008-10-19
我倒, 这JAVA玩的, 可真够神的, 真是玩于股掌之间
|
|
返回顶楼 | |
发表时间:2008-10-24
是个挺不错的想法,写程序换换思路挺好
|
|
返回顶楼 | |
发表时间:2008-12-06
恩,挺有新意的,
如果改成用 异常堆栈去找出调用方法的注解还是有一定实际意义的。 |
|
返回顶楼 | |