我正在读这个:
http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.20.2
http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.20.2
他们说:
Consider the example program:
class Point { int x,y; } class Element { int atomicNumber; } class Test { public static void main(String[] args) { Point p = new Point(); Element e = new Element(); if (e instanceof Point) { // compile-time error System.out.println("I get your point!"); p = (Point)e; // compile-time error } } }
The
instanceof
expression is incorrect because no instance ofElement
or any of its possible subclasses (none are shown here) could possibly be an instance of any subclass ofPoint
.
为什么这会导致错误,而不是简单地在返回false的情况下?
谢谢,
JDelage
解决方法
instanceof check是运行时检查.编译器能够在编译时发现这个条件不正确(更早),因此它告诉你它是错误的.永远记住,快速失败是一种很好的做法,它会为你节省大量的时间和精力.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。