簡體   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