The instanceof operator is used to check whether the run-time type of an object is compatible with a given type (15.20.2 Type Comparison Operator instanceof):
expression instanceof type
The type of an expression operand of the instanceof operator must be a reference type or the null type; otherwise, a compile-time error occurs. The type mentioned after the instanceof operator must denote a reference type; otherwise, a compile-time error occurs.
An instanceof expression evaluates to true if both of the following conditions are met:
- expression is not null.
- expression can be cast to type. That is, a cast expression of the form (type)(expression) will complete without raising a ClassCastException.
It is a compile-time error if the type mentioned after the instanceof operator does not denote a reifiable type.
If a cast of the expression to the type 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.
Here is an example code:
public class Test{ public static void main(String[] args) { String s = "ABCD.com"; byte[] b = s.getBytes(); System.out.println(b instanceof byte[]); System.out.println(b instanceof Object); //System.out.println(b instanceof Object[]); //byte[] can not cast to Object[] //System.out.println(b instanceof byte); //byte is primitive type } }
Comments
Post a Comment