知识大全 编写代码生成器[6]
Posted 知
篇首语:四方食事,不过一碗人间烟火。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 编写代码生成器[6]相关的知识,希望对你有一定的参考价值。
Eclipse工具开发:编写代码生成器[6] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
——此文章摘自《自己动手写开发工具 基于Eclipse的工具开发》定价 ¥ 特价 ¥ 详细>>//track linktech cn/?m_id=dangdang&a_id=A &l= &l_type = width= height= border= nosave>private <%=className%>(String type) super(); this type = type; public int hashCode() final int PRIME = ; int result = ; result = PRIME * result + ((type == null) ? : type hashCode()); return result; public boolean equals(Object obj) if (this == obj) return true; if (obj == null) return false; if (getClass() != obj getClass()) return false; final <%=className%> other = (<%=className%>) obj; if (type == null) if (other type != null) return false; else if (!type equals(other type)) return false; return true;
这个模板文件是非常简单的 有了前面的基础 读懂这个模板文件就非常简单了 这里只讲两点 l 文件头的imports属性是用来定义生成的代码的import列表的 这个模板中用到了集合类Set 所以要用imports= java util * 将其导入 否则生成的代码会编译错误 如果要导入多个类 只要把它们用空格隔开即可 比如 imports= imports= java util * java sql Date 不能使用其他分隔符 l 由于传递进来的参数是一个JavaBean 因此需要把argument进行一次转型操作 EnumGenArgInfo argInfo = (EnumGenArgInfo)argument; 编写下面的代码测试一下这个代码模板 public static void main(String[] args) EnumCodeGenerator gen = new EnumCodeGenerator(); EnumGenArgInfo argInfo = new EnumGenArgInfo(); argInfo setClassName( MyEnum ); Set<String> items = new HashSet<String>(); items add( VIP ); items add( MM ); argInfo setItems(items); argInfo setPackageName( cownew ); System out println(gen generate(argInfo)); 运行之后发现输出的代码完全正确 这样我们就可以来完成EnumCodeGenUtils类的getEnumSourceCode方法 【代码 】完成后的getEnumSourceCode方法 public static String getEnumSourceCode(String packageName String fileName Set<String> itemDefSet) Pattern pattern = Pattern pile( ( +) java ); Matcher mat = pattern matcher(fileName); mat find(); String className = mat group( ); EnumCodeGenerator gen = new EnumCodeGenerator(); EnumGenArgInfo argInfo = new EnumGenArgInfo(); argInfo setClassName(className); argInfo setItems(itemDefSet); argInfo setPackageName(packageName); return gen generate(argInfo);
这里用到了正则表达式来从Java文件名中提取类名 使用的是JDK中的正则表达式实现 对于正则表达式 我们可以去查阅相关资料 正则表达式是一个非常好用的工具 掌握以后能轻松解决很多字符串解析相关的问题 并为学习编译原理打下基础
cha138/Article/program/Java/ky/201311/29012相关参考
Eclipse工具开发:编写代码生成器[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Eclipse工具开发:编写代码生成器[5] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Eclipse工具开发:编写代码生成器[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Eclipse工具开发:编写代码生成器[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
编写JScript代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 与其他许多编程语言一样Mi
Java应用:编写高级JavaScript代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 创
Java应用:编写高级JavaScript应用代码[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
Java应用:编写高级JavaScript应用代码[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
Java进阶:编写高级JavaScript应用代码[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
Java进阶:编写高级JavaScript应用代码[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下