在java中使用“Instance of”

问题:

 What is the ‘instanceof’ operator used for?

我了解到Java具有instanceof运算符。你可以详细说明它使用的地方,它的优点是什么?

回答:

基本上,您检查对象是否是特定类的实例。
您通常使用它,当您具有超类或接口类型的对象的引用或参数,并且需要知道实际对象是否具有其他类型(通常更具体)。
例:

public void doSomething(Number param) {
  if( param instanceof Double) {
    System.out.println("param is a Double");
  }
  else if( param instanceof Integer) {
    System.out.println("param is an Integer");
  }

  if( param instanceof Comparable) {
    //subclasses of Number like Double etc. implement Comparable
    //other subclasses might not -> you could pass Number instances that don't implement that interface
    System.out.println("param is comparable"); 
  }
}

请注意,如果您经常使用该操作系统,通常会提示您的设计有一些缺陷。因此,在设计良好的应用程序中,您应该尽可能少地使用该运算符(当然这个一般规则有例外)。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: use of “Instance of” in java

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

4 + 5 =