java: boolean instanceOf boolean 值?

标签 java casting boolean primitive autoboxing

我有点困惑:我有一个函数,它接受一个对象作为参数。但是,如果我只是传递一个原语,甚至将 boolean 原语识别为 boolean 对象,编译器也不会提示。为什么呢?

public String test(Object value)
{
   if (! (value instanceof Boolean) ) return "invalid";
   if (((Boolean) value).booleanValue() == true ) return "yes";
   if (((Boolean) value).booleanValue() == false ) return "no";
   return "dunno";
}

String result = test(true);  // will result in "yes"

最佳答案

因为原语 'true' 将是 Autoboxed Boolean,这是一个 Object

关于java: boolean instanceOf boolean 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3600686/

相关文章:

c++ - 在 std::set 的定义中将 const_iterator 强制转换为 iterator&

c++ - 我可以将 vector 转换为 OpenCv 矩阵吗?

python - 如何在 python 交互模式下撤消 True = False?

java - MacOS Eclipse IDE 运行具有较旧 Java 版本的应用程序

java - 使 spring @Value 从静态字段中获取默认值

java - 使用 Time 作为类成员的 AbstractVehicle

c++ - C++ 中的递归 boolean 函数

java - 如何从 HttpServletResponse 获取错误消息

ios - 转换为在运行时确定的类

java - 不能使用 == 代替一元 & 来检查两个值是否相等