Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
所有Java标准类和方法的简单列表?_Java_Python_Parsing - Fatal编程技术网

所有Java标准类和方法的简单列表?

所有Java标准类和方法的简单列表?,java,python,parsing,Java,Python,Parsing,我正在构建一个非常简单的Java解析器,以查找一些特定的使用模型。这绝不是lex/yacc或任何其他形式的解释器/编译器用于运行代码 当我遇到一个单词或一组由点分隔的两个单词(“word.word”)时,我想知道这是一个标准的Java类(和方法),例如“Integer”,还是某个用户定义的名称。我对代码中是否包含/导入了正确的类(即代码是否编译良好)不感兴趣,而覆盖标准Java类名称的用户定义类的极端情况也不感兴趣。换句话说:我对假阴性没问题,我只对“大部分”正确感兴趣 如果有一个地方,我可以找

我正在构建一个非常简单的Java解析器,以查找一些特定的使用模型。这绝不是lex/yacc或任何其他形式的解释器/编译器用于运行代码

当我遇到一个单词或一组由点分隔的两个单词(“word.word”)时,我想知道这是一个标准的Java类(和方法),例如“Integer”,还是某个用户定义的名称。我对代码中是否包含/导入了正确的类(即代码是否编译良好)不感兴趣,而覆盖标准Java类名称的用户定义类的极端情况也不感兴趣。换句话说:我对假阴性没问题,我只对“大部分”正确感兴趣

如果有一个地方,我可以找到一个简单的列表,列出所有Java标准类和方法的名称,格式很容易保存到文本文件或数据库中?(J2SE还可以,但J2EE更好)。我熟悉etc,但似乎我需要大量的手工工作才能从中提取出所有的名字。另外,最新的JDK不是必需的,我可以使用1.4或1.5

澄清:我不是在用Java,而是在用Python,所以我不能在我的解析机制中使用特定于Java的命令


谢谢

这辆车怎么了?列出了所有类、方法和静态变量。你可以用grep搜索括号。

要获得所有的类和方法,你可以查看上面的索引

这将是成千上万个类和方法中的10个,这将是压倒性的

我建议您在IDE中使用自动完成。这将根据上下文显示所有匹配的类/方法。 e、 假设你有一个变量

长时间=系统

这将显示系统中返回长值的所有方法,例如

长时间=System.nanoTime()

即使您知道很多方法/类,这也可以为您节省大量输入

当我遇到一个单词或一组由点分隔的两个单词(“word.word”)时,我想知道这是一个标准的Java类(和方法),例如“Integer”,还是某个用户定义的名称

如果这正是您所追求的,那么您可以通过使用一些简单的反射来避免(有限的)Java类列表:


对于您的目的来说,这样的东西应该已经足够了,他还增加了一个好处,即不局限于类的子集,并且可以通过类路径上的任何库进行扩展。

如果您只想创建Java中所有类及其方法的列表(以便可以填充数据库或XML文件),您可能希望编写一个Eclipse插件,它可以查看整个JavaCore模型,并扫描其所有类(例如,通过搜索对象的所有子类型)。然后列举所有的方法。从技术上讲,您可以通过将任何库包含在您的上下文中来实现这一点。

IBM有一个从JavaDocs创建XML的工具,如果我没有弄错的话:

还有一个选项,可以从jre/lib文件夹解析
classlist
文件,或者打开
jsse.jar
文件,在那里列出所有类,然后自己用点分隔的形式列出它们。

+1没问题:)我不熟悉这种形式的列表。。。是否有一种类似的简单方法来访问每个类的方法列表(即不是每个类都有的列表),在这个阶段,我要做的是使用类列表,并假设“真实”类后面的所有内容都是“真实”成员。原因是它需要最少的时间来实现。谢谢。谢谢,这包含了大量的手工工作(列表中的正则表达式有问题)我没有说我在用Java:)我的代码实际上是用Python编写的。我不明白你的意思。你能详细说明一下吗?JRE的lib文件夹中有两个文件——classlist和jsse.jar。primer包含库中所有类的列表,后者是一个包含所有标准运行时类的jar。您可以使用这些来创建标准库类列表,以便在解析器中使用。是的,应该可以使用自定义Doclet生成几乎任何输出:
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.");
}