我有几个类,如下例所示:
abstract class AClass {
boolean validate(){
return true;
}
}
当另一个类扩展AClass
时,我会这样做:
class BClass extends AClass {
@Override
boolean validate() {
if (!super.validate()) {
return false;
}
// TODO validate
return true;
}
}
当我从菜单创建一个新类时,是否有一个eclipse插件为我生成代码(File> New> Class)?
我正在考虑使用注释
@Target(ElementType.METHOD)
@interface Code {
String content();
}
并将其添加到方法中:
abstract class AClass {
@Code(content = "\tif (!super.validate()) {\r\n"
+ "\t\treturn false;\r\n"
+ "\t}\r\n"
+ "\t// TODO validate\r\n"
+ "\treturn true;")
boolean validate() {
return true;
}
}
插件应查找注释并在新创建的类中生成代码。
答案 0 :(得分:0)
在Windows下 - >首选项,您可以键入Java代码模板。
您可以在Java下找到代码模板 - >代码风格 - >代码模板
在Eclipse 3.5上,类体的模式为空。您可以添加自己的模式。
这是新Java文件的模式,可以让您了解模式的样子。
${filecomment}
${package_declaration}
${typecomment}
${type_declaration}
答案 1 :(得分:0)
我的请求的解决方案如下:
在插件中创建另一个“新类向导”,方法是使用扩展org.eclipse.jdt.internal.ui.wizards.NewElementWizard
的页面扩展NewClassCreationWizard
(类似于org.eclipse.jdt.ui.wizards.NewTypeWizardPage
类)(比如NewClassWizardPage
)
覆盖org.eclipse.jdt.ui.wizards.NewTypeWizardPage.createTypeMembers(IType, ImportsManager, IProgressMonitor)
首先,致电createInheritedMethods
(如NewClassWizardPage
)
然后,type.getMethods()
将为您提供超类中的继承方法。
检查结果数组中的方法是否在超类中具有所需的注释(例如@Code
)。如果是,请创建新的方法代码,包括它的声明:
StringBuffer buf = new StringBuffer();
buf.append("@Override").append("\n");
buf.append(Modifier.toString(Modifier.PUBLIC) + " ");
buf.append(Signature.toString(method.getSignature(), method.getElementName(), method.getParameterNames(), false, true));
buf.append(" {").append("\n");
buf.append("// the code from the annotation\n");
buf.append("}");
删除当前方法:
method.delete(true, monitor);
然后使用自定义代码添加方法:
type.createMethod(buf.toString(), null, true, monitor);
现在安装插件,当您使用向导创建新类时,方法的自定义代码将自动写入。