2015-05-21 41 views
4

創建其他變量我使用反射來調用一個方法:我可以使用一個字符串變量的數據類型在Java

method.invoke(someObject, null); 

的問題是,我想使用的值,這個方法返回,而無需這是手前已知的數據類型。我有一個字符串變量的數據類型的知識,說

String type = "String"; 

是否有可能做一些等價的這 -

type variable = method.invoke(someObject, null) 
+2

你究竟想達到什麼目的?爲什麼不把它返回給一個'Object'? – Mureinik

+0

我想做類型特定的操作。對於例如如果它是一個整數,我會檢查它是否小於0.如果它只是Object數據類型,我將如何實現這一點? –

+0

'myObject.equals(Integer.valueOf(0))''? – Mureinik

回答

1

instanceof檢查對象類型。

Object o = method.invoke(...); 
if(o instanceof Integer) { 
    // Integer logic... 
} 
if(o instanceof YourType) { 
    // YourType logic... 
} 
// and so on 
+0

任何非如果做到這一點? –

0

也許這樣的事情可能會爲你工作:

if(type.equals("String"){ 
    String o = (String) returnedObject; 
} else if(type.equals("Integer")){ 
    Integer o = (Integer) returnedObject; 
} 

但我建議不打算沿着這條道路。必須有一些更好的方法來達到你想要的結果。

+0

我也有同感。 –

相關問題