我正在构建一个非常简单的Java解析器,以寻找一些特定的使用模型。对于运行代码的目的,这绝不是lex / yacc或任何其他形式的解释器/编译器。
当我遇到一个由一个点(“word.word”)分隔的单词或一组两个单词时,我想知道这是否是标准的Java类(和方法),例如“整数”或一些用户定义的名称。我对代码中是否包含/导入了正确的类(如果代码编译得很好)并不感兴趣,并且覆盖标准Java类名称的用户定义类的极端情况也不感兴趣。换句话说:我对假阴性没什么好处,我只是对“大部分”正确感兴趣。
如果有一个地方我可以找到所有Java标准类和方法的所有名称的简单列表,在表单中轻松保存到文本文件或数据库中? (J2SE没问题,但J2EE更好)。我熟悉http://java.sun.com/j2se/等,但似乎我需要大量的手工工作才能从中提取所有名称。此外,最新的JDK不是必需的,我可以使用1.4或1.5。
澄清:我不是在Java中工作,而是在Python中工作,所以我不能在我的解析机制中使用特定于Java的命令。
由于
答案 0 :(得分:1)
答案 1 :(得分:1)
要获取所有类和方法,您可以查看索引 http://java.sun.com/javase/6/docs/api/index-files/index-1.html
这将是成千上万的课程和方法,这可能是压倒性的。
我建议您在IDE中使用自动完成功能。这将根据上下文向您显示所有匹配的类/方法。 例如说你有一个变量
很长时间=系统。
这将显示System中返回long值的所有方法,例如
很长时间= System.nanoTime();
即使你知道很多方法/类,这也可以为你节省很多打字。
答案 2 :(得分:1)
如果您只想创建Java中所有类及其方法的列表(以便可以填充数据库或XML文件),您可能需要编写一个查看整个JavaCore模型的Eclipse插件,并扫描其所有类(例如,通过搜索Object的所有子类型)。然后枚举所有方法。您可以通过将其包含在您的上下文中来实现技术上的任何库。
答案 3 :(得分:1)
如果我没有弄错的话,IBM有一个从JavaDocs创建XML的工具: http://www.ibm.com/developerworks/xml/library/x-tipjdoc/index.html
答案 4 :(得分:1)
还可以选择从jre / lib文件夹解析classlist
文件或打开jsse.jar
文件,列出所有类,并自己以点分隔形式列出它们。< / p>
答案 5 :(得分:0)
当我遇到一个由一个点(“word.word”)分隔的单词或一组两个单词时,我想知道这是否是标准的Java类(和方法),例如“整数”或一些用户定义的名称。
如果那就是你所追求的,你可以通过使用一些简单的反射来完成没有(有限的)Java类列表: http://java.sun.com/developer/technicalArticles/ALT/Reflection/
try {
Class.forName("word.word");
System.out.println("This is a valid class!");
} catch (ClassNotFoundException e) {
System.out.println("This is not a valid class.");
}
这样的事情应该足以满足你的目的,他增加的好处是不限于类的子集,并且可以通过类路径上的任何库进行扩展。