在进行编码写实体类的时候发现,一个实体类有好多的字段要进行注释,他们都是私有的不能直接访问,我们在写的时候加入的文档注释也起不到效果,但是自动生成的get,set方法的文档注释有不符合我们要求(没有包含字段中的文档注释) 所以就很纠结。在网上看到了一些大神有解决方法就试了下可以,拿出来和大家分享下!
修改后的效果图:
步骤:
1:在myeclipse/eclisp中搜索找到org.eclipse.jdt.ui_*.jar(*是版本号)
2:将jar文件改成.rar格式并打开(修改前最好先备份一下这个jar文件)
3:找到\org\eclipse\jdt\internal\corext\codemanipulation这个目录下的GetterSetterUtil.class这个文件,并下载我提供压缩文件下的文件替换掉这一个文件就可以了
4:开启开发工具找到Window->Preferences->Java->CodeStyle->Code Templates->Comments->Getters/Setters
具体代码修改:
通过反编译技术,修改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() );
getters:
- /**
- * 获取${bare_field_name}
- * @return ${bare_field_name} ${bare_field_name}
- */
- /**
- * 设置${bare_field_name}
- * @param ${bare_field_name} ${bare_field_name}
- */
注意:生成Get/Set方法时勾选上Generate method comments
我在myeclips8.6中测试成功!大家可以试试
MyEclipse10可用