当前位置:首页 » 编程语言 » java获取注释

java获取注释

发布时间: 2023-05-04 08:35:47

‘壹’ java 中的几种注释方式

我看动力节点的java基础大全301集教中的三种注释方法:

1、单行注释 //注释的内容

2、多行注释/*......*/

3、/**......*/,这种方式和第二种方式相似。这种格式是为了便于javadoc程序自动生成文档。

下面介绍一下Javadoc的标记:

特别声明:

(1)javadoc针对public类生成注释文档

(2)javadoc只能在public、protected修饰的方法或者属性之上

(3)javadoc注释的格式化:前导*号和HTML标签

(4)javadoc注释要仅靠在类、属性、方法之前

下面主要举例说明第三种注释的应用:

(1)首先编写.java文件

(2)在命令行中执行以下dos命令:

javadoc *.java //根据相应的Java源代码及其说明语句生成HTML文档

//javadoc标记:是@开头的,对javadoc而言,特殊的标记。

(3)在当前目录下就会产生doc文件夹,里面有一系列的.html文件

附上代码:

[java]view plain

  • <spanstyle="font-size:18px;">*/

  • /**javadoc注释的内容

  • */

  • publicclassHello{

  • /**属性上的注释*/

  • publicStringname;

  • /**这是main方法,是程序的入口

  • *@paramargs用户输入参数

  • */

  • publicstaticvoidmain(String[]args){

  • System.out.println("HelloWorld!");

  • f1();

  • }

  • /**这是第1个方法,其作用是...*/

  • publicstaticvoidf1(){

  • System.out.println("f1()!");

  • }

  • }</span>

  • [java]view plain

  • <spanstyle="font-size:18px;">importjava.io.IOException;

  • /**javadoc注释内容

  • *@since1.0

  • *@version1.1

  • *@authorBlueJey

  • *<br>链接到另一个文档{@linkHello},就这些

  • *seeHello

  • */

  • publicclassHelloWorld{

  • /**非public,protected属性上的注释不生成*/

  • publicStringname;

  • /**这是main方法,是程序的入口

  • *@paramargs用户输入的参数,是数组

  • *@throwsIOExceptionmain方法io异常

  • */

  • publicstaticvoidmain(Stringargs[])throwsIOException{

  • System.out.println("helloWorld!");

  • f1();

  • f2(1);

  • }

  • /**这是第一个方法,其作用是....

  • *@deprecated从版本1.2开始,不再建议使用此方法

  • */

  • publicstaticvoidf1(){

  • System.out.println("fl()!");

  • }

  • /**这是第二个方法,其作用是....

  • *@return返回是否OK

  • *@parami输入参数i

  • *@seeHello

  • *@throwsIOExceptionio异常

  • */

  • publicstaticStringf2(inti)throwsIOException{

  • System.out.println("f1()!");

  • return"OK";

  • }

  • }</span>

  • 注意:

    如果源文件中有用到@version,@author标记,则在执行javadoc命令时,要加-version-author

    javadoc-version-author-ddoc*.java

    (其中用-version用于提取源文件中的版本信息-author用于提取源文件中的作者信息)

‘贰’ 用java正则表达式提取java程序中的注释

正则的效率非常低,有很多不用正则的好方法:
一,示例 某java程序
比如说一个Test2.java,将其保存在C盘根目录下,代码内容如下
/**
* @author xxx
*
*/
public class Test2 {
/* main method */
public static void main(String[] args) {
//a
int a =5;
//b
int b =5;
//a+b
System.out.println(a+b);

}
}

二,提取注释程序,将所有注释放到一个List里面,最后打印输出:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Test {
private static final String javaFilePath = "C:/Test2.java";
public static void main(String[] args) throws IOException {
List<String> comments = new ArrayList<String>();
BufferedReader bfr = new BufferedReader(new InputStreamReader(new FileInputStream(javaFilePath)));
String line=null;
while((line=bfr.readLine())!=null){
line = line.trim();
if(line.startsWith("//")){
comments.add(line);
}
else if(line.startsWith("/*")&&line.endsWith("*/")){
comments.add(line);
}else if(line.startsWith("/*")&&!line.endsWith("*/")){
StringBuffer multilineComment = new StringBuffer(line);
while((line=bfr.readLine())!=null){
line = line.trim();
multilineComment.append("\n").append(line);
if(line.endsWith("*/")){
comments.add(multilineComment.toString());
break;
}
}

}
}
bfr.close();
for(int i=0;i<comments.size();i++){
System.out.println("第"+(i+1)+"处注释: ");
System.out.println(comments.get(i));
}
}

}

三,输出结果:
第1处注释:
/**
* @author xxx
*
*/
第2处注释:
/* main method */
第3处注释:
//a
第4处注释:
//b
第5处注释:
//a+b

‘叁’ java获取当前类上的注解内容

@Retention(RetentionPolicy.RUNTIME) // 注解会在class字节码文件中存在,在运行时可以通过反射获取到
@Target({ElementType.FIELD,ElementType.METHOD})//定义注解的作用目标**作用范围字段、枚举的常量/方法
@Documented//说明该注解将被包含在javadoc中
public @interface FieldMeta {

/**
* 是否为序列号
* @return
*/
boolean id() default false;
/**
* 字段名称
* @return
*/
String name() default "";
/**
* 是否可编辑
* @return
*/
boolean editable() default true;
/**

热点内容
万科海上传奇二期 发布:2024-11-01 14:22:52 浏览:59
u盘文件夹是空的 发布:2024-11-01 14:19:57 浏览:402
python包含字符串 发布:2024-11-01 14:19:17 浏览:479
c语言的精华 发布:2024-11-01 14:19:02 浏览:588
steam截图文件夹 发布:2024-11-01 14:18:59 浏览:613
ipad怎么往安卓传照片 发布:2024-11-01 14:18:19 浏览:508
我的电脑没有文件夹选项 发布:2024-11-01 14:13:55 浏览:546
vb创建数据库表 发布:2024-11-01 14:11:55 浏览:872
sql联合表 发布:2024-11-01 14:03:25 浏览:962
linux编程gcc 发布:2024-11-01 14:02:41 浏览:705