所以我做了一个数组:
public static Boolean[][] squaresWithPieces = new Boolean[][]{
{Boolean.TRUE,Boolean.TRUE,null,null,null,null,Boolean.FALSE,Boolean.FALSE},
{Boolean.TRUE,Boolean.TRUE,null,null,null,null,Boolean.FALSE,Boolean.FALSE},
{Boolean.TRUE,Boolean.TRUE,null,null,null,null,Boolean.FALSE,Boolean.FALSE},
{Boolean.TRUE,Boolean.TRUE,null,null,null,null,Boolean.FALSE,Boolean.FALSE},
{Boolean.TRUE,Boolean.TRUE,null,null,null,null,Boolean.FALSE,Boolean.FALSE},
{Boolean.TRUE,Boolean.TRUE,null,null,null,null,Boolean.FALSE,Boolean.FALSE},
{Boolean.TRUE,Boolean.TRUE,null,null,null,null,Boolean.FALSE,Boolean.FALSE},
{Boolean.TRUE,Boolean.TRUE,null,null,null,null,Boolean.FALSE,Boolean.FALSE}
};
当我运行 main() 方法时,它会执行以下操作:
for (int row = 0; row < squaresWithPieces.length; row++) // Cycles through rows.
{
for (int col = 0; col < squaresWithPieces[row].length; col++) // Cycles through columns.
{
System.out.printf("%5b ", squaresWithPieces[row][col]); // Change the %5d to however much space you want.
}
System.out.println(); // Makes a new row
}
我得到以下输出:
true true false false false false false false
true true false false false false false false
true true false false false false false false
true true false false false false false false
true true false false false false false false
true true false false false false false false
true true false false false false false false
true true false false false false false false
为什么会这样?我认为使用 Boolean 类允许 boolean 值是“null”?
This question也表明。
最佳答案
Why is that the case? I thought using Boolean class allows Booleans to be "null" ?
当您将值打印到屏幕时,您的示例突出显示了值与值的表示 之间的区别。打印出来的字符不一定反射(reflect)真实值。在这种情况下,您使用的是 %b
格式说明符,它只能打印 true
或 false
,即使实际值是其他值也是如此。
您可以 experiment with this by changing %b
to %s
.这可能会让您更准确地表示基础值。
关于java - 在这种情况下,为什么 java 将类 Boolean 的空对象替换为 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71474818/