2011-11-18 119 views
0

如何將對象轉換爲布爾數組數組?將對象轉換爲布爾值[] []

Boolean[][] mass;  
mass = (Boolean[5][5])Object; 
+0

你爲什麼要這麼做? – ibid

+0

如果對象是流,那麼你會期望結果是什麼? –

+0

你在那個Object實例中有什麼? – jalopaba

回答

1

這是回答你的問題:

Boolean[][] tst = new Boolean[5][5]; 
Object obj = tst;  

Boolean[][] mass;  
mass = (Boolean[][])obj; 

System.out.println("tst.length = " + mass.length); 
System.out.println("tst[0].length = " + mass[0].length); 

只投給Boolean[][]

打印輸出樣本:

tst.length = 5 
tst[0].length = 5 
1

對象是一個類,而不是一個實例。您不能將類Object強制轉換爲Boolean [5] [5],僅僅因爲Class肯定不是Boolean [5] [5]類型的對象,您可能可以將Object類型的引用強制轉換爲Boolean [ 5] [5]。

1

類型爲布爾數組的數組是Boolean[][],不論其大小。另外,Object是一個類和關鍵字,因此您的實際對象不能被調用。

實例(假設你有一個實際Boolean[][]你恰好有一個靜態類型的Object收到):

class Test{ 
    public static void main(String[]_){ 

     Boolean[][] x = new Boolean[][]{{true,false},{false,true}}; 

     Object o = x; //say you're given the o object 

     Boolean[][] y = (Boolean[][])o; //cast it like this 

     for (Boolean[] b : y) 
      System.out.println(java.util.Arrays.toString(b)); 

    } 
} 

如果這也不行,那被拋出的ClassCastException應該告訴你什麼你的對象的實際類是,然後你可能知道如何手工轉換它(愚蠢的例子:一個字符串「0101 ...」與25 0 s和1 s)。