2011-11-18 107 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)。