网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月02日漏签0天
lucene吧 关注:267贴子:650
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 2回复贴,共1页
<<返回lucene吧
>0< 加载中...

写解析器时,要用的org.eclipse.jdt.core.dom我这里怎么没有

  • 只看楼主
  • 收藏

  • 回复
  • jijingkun11
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
import org.eclipse.jdt.core.dom.AST;
import org.eclipse.jdt.core.dom.ASTParser;
import org.eclipse.jdt.core.dom.Block;
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jdt.core.dom.ImportDeclaration;
import org.eclipse.jdt.core.dom.Javadoc;
import org.eclipse.jdt.core.dom.MethodDeclaration;
import org.eclipse.jdt.core.dom.Name;
import org.eclipse.jdt.core.dom.SingleVariableDeclaration;
import org.eclipse.jdt.core.dom.TypeDeclaration;

public class JavaParser {

private ASTParser _parser = ASTParser.newParser(AST.JLS2);
private CompilationUnit _unit = null;
private JClass _class = null;

public  void setSource(File f) {
BufferedReader reader;
try {
reader = new BufferedReader(new FileReader(f));
StringBuffer sourceStr = new StringBuffer();
String tempStr;
BufferedReader fR = new BufferedReader(new FileReader(f));
while((tempStr = fR.readLine()) != null)
sourceStr.append("\n").append(tempStr);
reader.close();
_parser.setKind(ASTParser.K_COMPILATION_UNIT);
_parser.setSource(sourceStr.toString().toCharArray());
_unit = (CompilationUnit) _parser.createAST(null);

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public  ArrayList getImportDeclarations() {
List imports = _unit.imports();
if(imports.size() == 0) return null;
ArrayList importDecl = new ArrayList();
ListIterator iter = imports.listIterator();
while (iter.hasNext()) {
ImportDeclaration decl = (ImportDeclaration)iter.next();
importDecl.add(decl.getName().toString());
}
return importDecl;
}

public  ArrayList getComments() {
List comments = _unit.getCommentList();
if(comments.size() == 0)return null;
ArrayList javaDocComments = new ArrayList();
ListIterator iterator = comments.listIterator();
while(iterator.hasNext()) {
Object object =  iterator.next();
if(object instanceof Javadoc){
String comment = ((Javadoc)object).getComment();
javaDocComments.add(comment);
}
}
return javaDocComments;
}

public JClass getDeclaredClass() {
List types = _unit.types();
ListIterator typeIter = types.listIterator(0);
if (typeIter.hasNext()) {
TypeDeclaration object = (TypeDeclaration) typeIter.next();
_class = new JClass();
setClassInformation(_class,object);
return _class;
}
return null;
}

private  void setClassInformation(JClass cls ,TypeDeclaration object) {
String clsName = object.getName().toString();
cls.className = clsName;
Name superClsName = object.getSuperclass();
if(superClsName != null)
 cls.superClass =  superClsName.toString();
 List interfaceLst = object.superInterfaces();
 ListIterator interfaces = interfaceLst.listIterator();
 while(interfaces.hasNext()){
 {
 Name sin = (Name)interfaces.next();
 cls.interfaces.add(sin.toString());
 }
 
 }
addMethods(cls,object);
TypeDeclaration[] innerTypes = object.getTypes();
for (int i = 0; i < innerTypes.length; i++) {
JClass innerCls = new JClass();
setClassInformation(innerCls, innerTypes[i]);
cls.innerClasses.add(innerCls);
}

}

private void addMethods(JClass cls, TypeDeclaration object) {
MethodDeclaration[] met = object.getMethods();
for (int i = 0; i < met.length; i++) {
MethodDeclaration dec = met[i];
JMethod method = new JMethod();
method.methodName = dec.getName().toString();
method.returnType = dec.getReturnType().toString();
Block d = dec.getBody();
if (d == null)
continue;
method.codeBlock =  d.toString();
List param = dec.parameters();
ListIterator paramList = param.listIterator();
while (paramList.hasNext()) {
SingleVariableDeclaration sin = (SingleVariableDeclaration) paramList
.next();
method.parameters.add(sin.getType().toString());
}

cls.methodDeclarations.add(method);
}
}

public class JClass {
String className = null;
ArrayList methodDeclarations = new ArrayList();
ArrayList innerClasses = new ArrayList();
String superClass = null;
ArrayList interfaces = new ArrayList();
}

public class JMethod{
String methodName = null;
ArrayList parameters = new ArrayList();
String codeBlock = null;
String returnType = null;
}
}


  • luminosite
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
同问


2026-04-02 10:21:08
广告
不感兴趣
开通SVIP免广告
  • wood51765182
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
请问您解决了吗


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回lucene吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示