Java中相当于Python的"dir"命令的方法是什么?

5

在Java中是否有类似于Python的"dir"命令或提供类似功能的库(即将对象和类的属性输出为信息字符串)?

这个问题类似于clojure的问题,可能与Java Reflection有关,就像这个问题一样,它似乎是一个更复杂但类似的主题。

2个回答

6

标准库中没有完全实现dir()的方法,但是您可以使用java.lang.reflect获得相同的信息。具体来说,探索和发现类的成员在查找类成员的文档中有详细说明。使用该API,您可以轻松地了解类属性的相关信息。

实际上,自己实现dir()只需要定义一个方法,该方法会内省类的方法和字段,并组装信息集合或打印您想知道的任何信息。

dir()在Java中的实用性有限,因为Java不是交互式的,但如果您需要它进行教育/调查目的或应用程序逻辑,反射API始终可用。


3

我在思考是否使用javap是个好选择。这位人说:

javap - Java类文件反汇编器

我可以通过以下方式查看内置方法:

javap java.lang.Double | grep -i int
public static final int MAX_EXPONENT;
public static final int MIN_EXPONENT;
public static final int SIZE;
public int intValue();
public int hashCode();
public int compareTo(java.lang.Double);
public static int compare(double, double);
public int compareTo(java.lang.Object);

考虑到 System.out.println()

javap -c java.lang.System | grep -i out
public static final java.io.PrintStream out;
public static void setOut(java.io.PrintStream);
   4: invokestatic  #4                  // Method setOut0:(Ljava/io/PrintStream;)V
   8: putstatic     #98                 // Field out:Ljava/io/PrintStream;

然后执行 javap java.io.PrintStream


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接