您的位置:首页 > 编程语言 > Java开发

Eclipse中自动生成get/set时携带注释给get/set

2011-11-27 14:16 417 查看
编码的时候通常要用到 JavaBean ,而在我们经常把注释写在字段上面,但生成的Get/Set方法不会生成,通过修改Eclipse源码可解决。效果如下:

/**
* 员工ID
*/
private String userid;
/**
* 获取员工ID
* @return userid 员工ID
*/
public String getUserid() {
return userid;
}
/**
* 设置员工ID
* @param userid 员工ID
*/
public void setUserid(String userid) {
this.userid = userid;
}

解决方案如下:

通过反编译技术,修改ECLIPSE的org.eclipse.jdt.ui_3.3.1.r331_v20070906.jar包中的

org.eclipse.jdt.internal.corext.codemanipulation.GetterSetterUtil类

下的getSetterStub及getGetterStub函数,来实现生成getter/setter时,注释使用成员的注释(如果成员的注释有的话,如果没有则使用注释模板生成,如果选择了生成getter/setter需要生成code comment的话)

getSetterStub函数修改的地方为:

将原:

if(addComments)

{

String comment = CodeGeneration.getSetterComment(field.getCompilationUnit(), parentType.getTypeQualifiedName('.'), setterName, field.getElementName(), typeName, argname, accessorName, lineDelim);

修改为:

if(addComments)

{

String comment = CodeGeneration.getSetterComment(field.getCompilationUnit(), parentType.getTypeQualifiedName('.'), setterName, field.getElementName(), typeName, argname, accessorName, lineDelim);

ISourceRange sr = field.getJavadocRange();

if( null != sr )

comment = field.getSource().substring( 0, sr.getLength() );

getGetterStub函数修改的地方为:

将原:

if(addComments)

{

String comment = CodeGeneration.getGetterComment(field.getCompilationUnit(), parentType.getTypeQualifiedName('.'), getterName, field.getElementName(), typeName, accessorName, lineDelim);

修改为:

if(addComments)

{

String comment = CodeGeneration.getGetterComment(field.getCompilationUnit(), parentType.getTypeQualifiedName('.'), getterName, field.getElementName(), typeName, accessorName, lineDelim);

ISourceRange sr = field.getJavadocRange();

if( null != sr )

comment = field.getSource().substring( 0, sr.getLength() );
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: