java - 将未知对象转换为 boolean 值

标签 java casting

我有一个 Map <String,Object> 的数组映射. Object将是一个简单类型( StringIntegerBoolean 、...)。

我正在尝试做类似的事情

Boolean isSet = (Boolean) metaMap.get("is_set");
if (isSet) ...

metaMap.get("is_set")可能未设置,因此它可以返回 null;或者已设置但可能正在使用 0/1 true/false"true"/"false" .

如何将所有这些情况转换为 boolean 值?

我意识到有 if/else使用解决方案instanceof .我想知道是否有更简单的解决方案。

最佳答案

由于您提供的信息很少,我假设您可以完全控制代码 - 特别是数组的创建。

而不是使用 Map<String, T>在数组中,使用类似于下面的方法创建和使用接口(interface),并派生类 StringMetaMap , IntegerMetaMap等等。

public interface MetaMap
{
 // returns true, if property is contained
 public boolean hasProperty(String property);

 // returns non-null value of property or throws an exception
 public boolean getPropertyOrThrow(String property) throws IllegalArgumentException;

 // returns null or property value (use methods above if you want to avoid null values)
 public Boolean getProperty(String property);
}

这些类封装了它们如何编码 boolean 值并允许通过接口(interface)轻松处理。

关于java - 将未知对象转换为 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42660813/

相关文章:

java - 打印数字菱形无法正常工作

sql - 如何将持续时间添加到 hhmm 格式的字符串并将其转换回字符串?

C++ double cast void 指针

c - 如何在模运算之前键入 uint32 数组的强制转换元素?

c++ - Visual Studio 2008 编译器不会在 C++ 中使用 sqrt 自动转换为 double 吗?

java - (Java) 如何定义允许用户输入哪些字母/数字/符号?

java - 计算交点数值不准确

java - 在 Java 中,确保获得 UTF-8 字符串的最佳方法是什么?

java - InnerList 类型中的参数不适用于参数(整数)

c++ - 原始构造函数与转换转换