我想我還是JAVA的初學者
最近遇到一些有關陣列的問題有點不知所措
所以上貴版請教一下
Double[][] Arr1=new Double[3][3];
Object[][] Arr2=new Double[3][3];
Object[][] Arr3=new Object[3][3];
Arr1,Arr2,Arr3到底有什麼不同?
我的資料(JDK1.5)內有查到
java.lang.Double extends Number
java.lang.Number extends Object
所以Arr1,Arr2只能放Double;Arr3可以放Object
另外有關陣列,有一個大家約定俗成的慣例,就是陣列內的元素
都視為同一個型別來處理
所以Arr1和Arr3的差別只在於
Arr3相關的變數都是Object,Object[],Object[][]
Arr1..............Double,Double[],Double[][]
但是Arr1,Arr2的類別是Double[][],Arr3的類別是Object[][];
Arr1,Arr2,Arr3的父類別都是Object
在這裡好像類別的轉換有一些問題
我要怎麼知道哪些類別可以轉型成哪些類別呢?
(我現在只知道繼承樹面的類別應該可以正確的轉換)
但是
JDK裡面並沒有Double[][]這個類別呀.....
java.lang.reflect.Array這個類別跟Double[][]有沒有關係呀?
一定要去找JLS才會有嗎?
有免費的可以找嗎?
那另外如果我有一個狀況,我已經確定Arr3[0][0]...Arr3[2][2]
通通裝的是Double.valueOf(1.0d)
我有什麼代價比較小(最好又簡單,優雅)的方法可以把Arr3的內容轉存到Arr1 ?
我現在只知道全部重新new一個類似Arr2的東西,再把Arr1指向Arr2
感謝感謝
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.116.143.199
推
02/03 13:23, , 1F
02/03 13:23, 1F