zoukankan      html  css  js  c++  java
  • 关于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(" *//*");			//这里也需要加符号"/*"
    		}
    	}
    	到这结束*/
    }
  • 相关阅读:
    .Net Remoting使用总结
    MacOS入门
    第一部分_Mac技巧
    国内安装Homebrew
    MacOS工具
    org.springframework.beans.factory.UnsatisfiedDependencyException异常
    五天一体_企业权限管理(SSM整合)
    00_02_使用Parallels Desktop创建Windos7虚拟机
    00_01_使用Parallels Desktop创建WindosXP虚拟机
    OpenCV中几何形状识别与测量
  • 原文地址:https://www.cnblogs.com/wing7319/p/7115905.html
Copyright © 2011-2022 走看看