|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
关于第二点:俺问问你,如果是企业级项目的话,诸如RMI,EJB,等一些关键技术,这些难道都不需要学么?如果光是使用jsp,servlet,javabean的话。
概述
本系列文章的前一篇先容了有关Eclipse的JavaEmitterTemplates(JET)和代码天生的常识,在那篇文章中,您已看到怎样经由过程利用模板和代码天生器来节俭工夫,并完成形式级的代码重用。但是在年夜部分情形中,这都还不敷。您必要可以将所天生的代码拔出现有的代码中,大概同意今后的开辟职员来定制所天生的代码,而不必要在从头天生代码时从头编写任何内容。幻想情形下,代码天生器的创立者但愿能够支持从此开辟职员一切的需求:从修正办法的完成、修正各类办法署名,到修正所天生类的承继布局。这是一个十分风趣的成绩,今朝还没有很好的通用办理计划;可是有一个很好的纯Java的办理计划,称为JMerge。
JMerge是EMF中包括的一个开放源代码的工具,可让您定制所天生的模子和编纂器,而从头天生的代码不会破坏已修正过的内容。假如形貌了怎样将重生成的代码兼并到现有定制过的代码中,那末JETEmitter就能够撑持JMerge。本文经由过程一个例子来展示个中的一些可用选项。
第一步
假定您已增加了一个新项目,在这个项目中必要为编写的每一个类都创立一个JUnit测试类,如许必需要对编写的每一个办法都进行测试。作为一个仔细且高效的(大概对照懒的)程序员来讲,您决意要编写一个插件,它承受一个Java类作为输出,并天生JUnit测试例子的存根(stub)。您热忱低落地创立了JET和插件,如今想同意用户定制所天生的测试类;但是在原有类的接口产生变化时,仍旧必要从头天生代码。要完成这类功效,可使用JMerge。
从插件中调用JMerge的代码十分复杂(拜见清单1)。这会创立一个新的JMerger实例,和一个URImerge.xml,设置要兼并的来历和方针,并挪用merger.merge()。然后兼并的内容就能够睁开为merger.getTargetCompilationUnit()。
清单1.挪用JMerge
// ...
JMerger merger = getJMerger();
// set source
merger.setSourceCompilationUnit(
merger.createCompilationUnitForContents(generated));
// set target
merger.setTargetCompilationUnit(
merger.createCompilationUnitForInputStream(
new FileInputStream(target.getLocation().toFile())));
// merge source and target
merger.merge();
// extract merged contents
InputStream mergedContents = new ByteArrayInputStream(
merger.getTargetCompilationUnit().getContents().getBytes());
// overwrite the target with the merged contents
target.setContents(mergedContents, true, false, monitor);
// ...
// ...
private JMerger getJMerger() {
// build URI for merge document
String uri =
Platform.getPlugin(PLUGIN_ID).getDescriptor().getInstallURL().toString();
uri += "templates/merge.xml";
JMerger jmerger = new JMerger();
JControlModel controlModel = new JControlModel( uri );
jmerger.setControlModel( controlModel );
return jmerger;
}
<p>
唉!都是钱闹的1.Swing和.net开发比较------从市场份额看.net开发主要占据大部分的中小型和中型的的桌面开发,原因是它封装了很多工具 |
|