1
我正在寫一個獲取Object的方法,並使用Object的字段執行一些邏輯。java會通過數組字段而不會創建新的實例
我的方法是這樣的:
public void exampleCast(Object obj) {
Field[] fields = obj.getClass().getFields();
for (Field field : fields) {
if (field.getClass().isArray()) {
/*
HOW CAN I GO OVER THE ARRAY FIELDS , WITHOUT CREATING NEW INSATCNE ?
SOMETHING LIKE:
for (int i = 0; i < array.length; i++) {
array[i] ...
}
*/
} else {
...
...
}
}
}
和實例對象:
class TBD1 {
public int x;
public int y;
public int[] arrInt = new int[10];
public byte[] arrByte = new byte[10];
}
而且打電話給我的方法:
TBD1 tbd1 = new TBD1();
exampleCast(tbd1);
在我mehod我不知道我怎麼能在不創建新實例的情況下獲取數組值(使用「newInstance」方法) 是可能嗎? (請參閱我在我的例子寫的評論)
我看那些2網站: http://jroller.com/eyallupu/entry/two_side_notes_about_arrays
http://tutorials.jenkov.com/java-reflection/arrays.html
但沒有得到我想要的。
請幫助:) 感謝
它不應該是'getType',而不是'getClass'?如果我沒有錯誤''FieldClass'調用'Field'實例會返回給我們'Field.class',這絕對不是一個數組。我們想要做的是檢查* type *是否是數組。 – Pshemo 2014-11-21 20:09:45