java怎么打印布尔值,java – 如何测试Map中的布尔值?

本文讨论了在Java中使用Map存储布尔值时需要注意的类型安全问题。作者指出,如果不指定Map的类型,可能会遇到NullPointerException或类型不匹配的问题。通过示例代码,展示了如何正确地声明和使用HashMap来避免这些错误。强调了在获取Map中的布尔值时,确保键存在并正确类型转换的重要性。
摘要由CSDN通过智能技术生成

你的代码看起来很好.只需确保使用完全相同的密钥(“b_StorageAvailable”).因为Map中的布尔值是自动装箱到原始布尔值,如果Map中没有提供键的条目,你将得到NullPointerException.

我还要检查你的函数的返回类型和局部变量是否被定义为HashMap< String,Boolean>同样.如果它是无类型的,那么你将无法假设它是Map中的布尔值.

public static void main(String[] args) {

Map states = new HashMap();

states.put("b_StorageAvailable", true);

states.put("b_StorageWritable", true);

if(states.get("b_StorageAvailable")){ // works fine!

System.out.println("storage is available!");

}

Map states2 = new HashMap(); // untyped!

states.put("b_StorageAvailable", true);

states.put("b_StorageWritable", true);

if(states2.get("b_StorageAvailable")){ // Type mismatch: cannot convert from Object to boolean

System.out.println("storage is available!");

}

}

所以你需要做的就是改变

Map states = this.getExternalStorageStatus();

Map states = this.getExternalStorageStatus();

并且可以改变getExternalStorageStatus()的返回类型

private Map getExternalStorageStatus(){

...

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值