繁体   English   中英

Java相当于python“dir”?

[英]Java equivalent to python “dir”?

在Python的python中是否有等效的“dir”,或者提供类似功能的库(即对象和类的属性输出为信息性字符串)?

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

标准库中没有任何内容可以完全实现dir()功能,但您可以使用java.lang.reflect获取相同的信息。 具体而言, 在发现类成员的文档中解释了调查和发现类的成员 使用该API,您可以轻松找到有关类属性的信息。

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

dir()在Java中的用处有限,因为Java不是交互式的,但如果你需要它用于教育/调查或应用程序逻辑,那么反射API总是在那里。

我在想是否使用javap是一个不错的选择。 该男子称javap - The Java Class File Disassembler

我可以看到内置的方法

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM