java數組object數組
『壹』 java object 對像是數組怎麼轉換
public static void main(String[] args){
//input 的定義是OBJECT,實際對象是int數組
Object input=new int[]{1,2};
System.out.println(input);
//可以把input[OBJECT類型]轉化成int數組
int[] tranfer=(int[])input;
System.out.println(tranfer.length);
}
我猜測樓主可能是在基於某些框架或設計模式編程時碰到這些問題。因為那些模式為了使參數抽象化,往往會把參數定義成Object. 對於程序編寫者來說,你自己實現的方法就應該知道自己只能接受實際類型【注意是實際類型】是int數組的。如果別人沒有把int數組當做Object傳進來,那麼那是別人的錯誤。當然為了使代碼質量高一點,樓主在編寫方法時候可以先判斷下傳進來的參數是不是int數組。比如input.getClass().isArray()能判斷這個input對象是不是數組
『貳』 java中Object... 的用法是什麼意思
居然 整個樓裡面都答非所問了 看我的看我的哦 提問者都說的這么清楚了
這個問題很好
日常使用不定參數時候基本是Object...可以等同於Object[] obj一維數組理解的
數組本質是連續的指針地址 其中數組的頭指針是必須的 但是二者的不同在於何處呢?
很明顯
Obj...是針對方法傳入參數的 即只能在method()內使用
即 不定參數只能作為方法的形參,不能用作變數
然後你看我建立2個test犯法
java的 數組結構在jvm的堆和棧上是不同的 但是我個人沒有理解這問題如果提問者了解歡迎回復我
有關不定參數的使用
public viod method(Object[] obj,Object...) {
Obj操了自己;
}
不過,不定參數有兩個規定:第一,方法的參數列表中最多隻有一個不定長度的參數;第二,就是不定長度的數組的位置必須是最後一個參數。不然不能通過編譯。