una encarnación más flagrante de su problema es el siguiente:
if ("foo" instanceof Number)
// "Incompatible conditional operand types String and Number"
Esto se especifica en JLS 15.20.2 Type comparison operator instanceof
:
RelationalExpression:
RelationalExpression instanceof ReferenceType
If a cast of the RelationalExpression to the ReferenceType would be rejected as a compile-time error, then the instanceof
relational expression likewise produces a compile-time error. In such a situation, the result of the instanceof
expression could never be true.
Eso es, ya que esta expresión de conversión genera un error de tiempo de compilación:
(Number) "foo"
así que debe esta expresión:
("foo" instanceof Number)
su caso es un poco más sutil, pero el principio es el mismo:
String
es una clase final
String
no implementa Cloneable
- lo tanto, puede 't hacer
(Cloneable) aString
- Por lo tanto, también no se puede hacer
aString instanceof Cloneable
si está utilizando eclipse, eche un vistazo a la respuesta de SomeGuys. – Christian