說我有該擴展java.lang.Object如下一類:編程確定所述編譯類型的Java實例
package pack;
public class Person {
}
和以下三個實例:
Object one = new Object();
Object two = new Person();
Person three = new Person();
爲了要確定運行時間類型,我只需要在實例上調用getClass()方法如下:
System.out.println("One runtime-type : " + one.getClass());
System.out.println("Two runtime-type : " + two.getClass());
System.out.println("Three runtime-type : " + three.getClass());
,輸出:
One runtime-type : class java.lang.Object
Two runtime-type : class pack.Person
Three runtime-type : class pack.Person
現在的問題是如何以編程方式確定靜/編譯型上面的實例?
通過靜態/編譯型我的意思是「左」的類型。它將輸出:
One compile-type : class java.lang.Object
Two compile-type : class java.lang.Object
Three compile-type : class pack.Person
問題的更多鈔票dublicate:HTTP://計算器。com/a/3504894/1888799 – veysiertekin
您能否提供您想爲此調用的方法的*方法簽名*? – Marco13
你的用例是什麼?這隻有使用泛型類型,方法參數或對象屬性纔有意義。所有這些可以通過Java Reflection API進行更多或更少的提取。 http://docs.oracle.com/javase/tutorial/reflect/ –