Java instanceof和byte []

时间:2011-08-30 17:20:53

标签: java casting bytearray instanceof

我期望的是,当potentialByteArray instanceof byte[]potentialByteArray的一个实例时,'byte[]会返回true,但这似乎不会发生 - 对某些人来说总是错误的原因!

我有条件如下:

if (!(potentialByteArray instanceof byte[])) { /* ... process ... */ }
else  {
        log.warn("--- can only encode 'byte[]' message data (got {})", msg.getClass().getSimpleName());
        /* ... handle error gracefully ... */
    }

......以及以下内容:

--- can only encode 'byte[]' message data (got byte[])

这意味着实际上的对象byte[]但不是某种instanceof byte[]。那么...这对Byte[]而言是否适用?这里到底发生了什么,为什么这不像我期待的那样有效?

在这里使用什么是合适的习惯用语?

1 个答案:

答案 0 :(得分:13)

看起来你有!(不是)你不需要

if (!(potentialByteArray instanceof byte[])) {...}

应该是

if (potentialByteArray instanceof byte[]) {...}