package ;
import ;
import ;
import ;
import ;
public class Jparser {
public static void main(String[] args) {
try {
//将一个java代码的文本解析为一棵CompilationUnit类型的树
CompilationUnit unit = (new File("D:\\Atools\\sts-bundle\\stsWorkspace\\bootdo2\\src\\main\\java\\com\\bootdo\\jparser\\"));
classUnit vc = new classUnit();
//在指定的树上进行搜索,然后根据遇到的节点的类型调用具体的回调
//(unit, null);
(vc,null);
} catch (FileNotFoundException e) {
();
}
}
}
package ;
import ;
import org.;
import org.;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
public class classUnit extends VoidVisitorAdapter<Object> {
Logger log = ();
//alt+shift m 成员方法
/**
* 包名
*/
@Override
public void visit(PackageDeclaration n, Object arg) {
("package---------"+());
(n, arg);
}
/**
* 支持包
*/
@Override
public void visit(ImportDeclaration n, Object arg) {
("ImportDeclaration-------------"+());
(n, arg);
}
/**
* 类
*/
@Override
public void visit(ClassOrInterfaceDeclaration n, Object arg) {
("arg-----------"+arg);//null
("()--------"+());//整个类的内容,不包括package和import
("()---------"+());//类名
//获取类的注解
NodeList<AnnotationExpr> annotations = ();
//判断是否有注解
if(()>0) {
for (AnnotationExpr annotation : annotations) {
(());
}
}
//获取类的注释
Optional<JavadocComment> javadocComment = ();
(());
(n, arg);
}
/**
* 成员方法
*/
@Override
public void visit(MethodDeclaration n, Object arg) {
("***********************************************************");
("arg-----------"+arg);//null
("()--------"+());//整个方法的内容
("()---------"+());//方法名
("()---------"+());//所有参数
NodeList<Parameter> parameters = ();
for (Parameter parameter : parameters) {
(());
}
//获取方法的注解
NodeList<AnnotationExpr> annotations = ();
//判断是否有注解
if(()>0) {
for (AnnotationExpr annotation : annotations) {
(());
}
}
//获取方法的注释
Optional<JavadocComment> javadocComment = ();
(());
//获取方法里面的方法
/*CompilationUnit cu = (());
(new methodUnit(), null);*/
(n, arg);
}
/**
* 变量
*/
@Override
public void visit(VariableDeclarator n, Object arg) {
("VariableDeclarator--------"+());
("VariableDeclarator--------");
//bContentService 成员变量
//bContentDO = (cid) 方法内部的变量
(n, arg);
}
/**
* 成员变量的注解
*/
@Override
public void visit(FieldDeclaration n, Object arg) {
("FieldDeclaration###############"+());//@Autowired
("所在位置的行号,int类型"+().get().);
(n, arg);
}
}
扫描的java文件
package ;
import org.;
import org.;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
/**
* 文章内容
*
* @author chglee
* @email 1992lcg@
* @date 2017-09-09 10:03:34
*/
@Controller
@RequestMapping("/blog/bContent")
public class DetectedController {
Logger log = (());
@Autowired
ContentService bContentService;
/**
* @return 需要配置thymeleaf模板引擎
*/
@GetMapping()
String bContent() {
a();
return "blog/bContent/bContent";
}
/**
* @param cid
* @return 测试能否获得对象
*/
@GetMapping("/edit/{cid}")
public ContentDO edit(@PathVariable("cid") Long cid) {
ContentDO bContentDO = (cid);
return bContentDO;
}
public void a() {
}
}