Home  |   STIU  |   WOW  |   SCJP  |   SCDJWS   |   JEE FAQ  |   About US  |  

FAQ
  Java FAQ
  JSP FAQ
  Servlet FAQ
 

Advertisement

Advertisement
XyzWs Java FAQ: What is 'instanceof'?

What is 'instanceof'?

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 = "XyzWS.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
  }

}

Further Reading


4.7 Reifiable Types

What is a reifiable type?


Previous Next vertical dots separating previous/next from contents/index/pdf Contents

Support  | Feedback  | Help