關於Java編寫多行注釋遇到方法字符串中正好也有注釋符號產生沖突的解決辦法


關於Java注釋遇到的一個小問題

遇到問題:
今天准備重寫一個類的方法時,本來計划要注釋到原來的代碼:

public class DefaultCommentGenerator
	public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
		field.addJavaDocLine("/** "+introspectedColumn.getRemarks()+"*/");
		if(!this.suppressAllComments) {
            StringBuilder sb = new StringBuilder();
            field.addJavaDocLine("/**");
            field.addJavaDocLine(" * This field was generated by MyBatis Generator.");
            sb.append(" * This field corresponds to the database column ");
            sb.append(introspectedTable.getFullyQualifiedTable());
            sb.append('.');
            sb.append(introspectedColumn.getActualColumnName());
            field.addJavaDocLine(sb.toString());
            this.addJavadocTag(field, false);
            field.addJavaDocLine(" */");
		}
	}
}

結果由於該方法中有有參數填寫的字符串中正好有注釋符號,結果我要整個代碼塊注釋的話,java就會自動解析到該字符串中的"/"的注釋結束符號,而后面再寫的自己的"/"注釋就無效了,結果就是該代碼會報錯:

public class DefaultCommentGenerator
	public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
		/*本來我想從這開始注釋
		field.addJavaDocLine("/** "+introspectedColumn.getRemarks()+"*/");
		if(!this.suppressAllComments) {
            StringBuilder sb = new StringBuilder();
            field.addJavaDocLine("/**");
            field.addJavaDocLine(" * This field was generated by MyBatis Generator.");
            sb.append(" * This field corresponds to the database column ");
            sb.append(introspectedTable.getFullyQualifiedTable());
            sb.append('.');
            sb.append(introspectedColumn.getActualColumnName());
            field.addJavaDocLine(sb.toString());
            this.addJavadocTag(field, false);
            field.addJavaDocLine(" */");	//結果是Java會以為我的注釋是以這個字符串中的*/結束的
		}
	}
到這結束*/
}

結果就導致這個代碼中只剩下:

public class DefaultCommentGenerator
	public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
		");	//結果是Java會以為我的注釋是以這個字符串中的*/結束的
		}
	}
到這結束*/
}

毫無疑問這是會報錯的。

解決辦法:

public class DefaultCommentGenerator
	public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
	/*從這開始注釋
		field.addJavaDocLine("/** "+introspectedColumn.getRemarks()+"*/");
		if(!this.suppressAllComments) {
            StringBuilder sb = new StringBuilder();
            field.addJavaDocLine("*//**");			//這里加符號"*/"
            field.addJavaDocLine(" * This field was generated by MyBatis Generator.");
            sb.append(" * This field corresponds to the database column ");
            sb.append(introspectedTable.getFullyQualifiedTable());
            sb.append('.');
            sb.append(introspectedColumn.getActualColumnName());
            field.addJavaDocLine(sb.toString());
            this.addJavadocTag(field, false);
            field.addJavaDocLine(" *//*");			//這里也需要加符號"/*"
		}
	}
	到這結束*/
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM