[英]java equivalent of c# typeof()
我是Java的新手。 假設我有一個xml解析器,然后從中創建對象。 在C#中,我會喜歡:
parser p = new parser(typeof(myTargetObjectType));
在我的解析器類中,我需要知道我在制造哪個對象,以便在無法解析的情況下拋出異常。 如何在jave中做同樣的事情? 我的意思是我該如何接受像typeof(myObject)
這樣的參數
我了解每種語言都有自己的做事方式。 我在問java中的方式
Java將Class
類作為對Java類型進行任何反射操作的入口點。
類
Class
實例表示正在運行的Java應用程序中的類和接口
若要獲取表示為Class
對象的對象的類型,可以調用所有引用類型繼承的Object#getClass()
方法。
返回此
Object
的運行時類。
您不能使用基本類型來執行此操作(調用getClass()
)。 但是,基本類型也具有關聯的Class
對象。 你可以做
int.class
例如。
public class Main {
public static void main(String[] args) {
UnsupportedClass myObject = new UnsupportedClass();
Parser parser = new Parser(myObject.getClass());
}
}
class Parser {
public Parser(Class<?> objectType) {
if (UnsupportedClass.class.isAssignableFrom(objectType)) {
throw new UnsupportedOperationException("Objects of type UnsupportedClass are not allowed");
}
}
}
class UnsupportedClass {}
或者,因為有了對象的實例,所以這更容易:
Parser parser = new Parser(myObject);
public Parser(Object object) {
if (object instanceof UnsupportedClass) {
throw new UnsupportedOperationException("Objects of type UnsupportedClass are not allowed");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.