实现instanceof关键字
生活随笔
收集整理的這篇文章主要介紹了
实现instanceof关键字
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果用Java的偽代碼來表現Java語言規范所描述的運行時語義,會是這樣:
// obj instanceof T boolean result; if (obj == null) {result = false; } else {try {T temp = (T) obj; // checkcastresult = true;} catch (ClassCastException e) {result = false;} }
注意這里完全沒提到JVM啊Class對象啊啥的,沒有展現出如何從代碼的角度獲得T是一個什么類型。另外要注意 instanceof 運算符除了運行時語義外還有部分編譯時限制,詳細參考規范。
// obj instanceof T boolean result; if (obj == null) {result = false; } else {try {T temp = (T) obj; // checkcastresult = true;} catch (ClassCastException e) {result = false;} }
?
用中文說就是:如果有表達式 obj instanceof T ,那么如果 obj 不為 null 并且 (T) obj 不拋 ClassCastException 異常則該表達式值為 true ,否則值為 false 。注意這里完全沒提到JVM啊Class對象啊啥的,沒有展現出如何從代碼的角度獲得T是一個什么類型。另外要注意 instanceof 運算符除了運行時語義外還有部分編譯時限制,詳細參考規范。
詳細部分可參見:
作者:RednaxelaFX
鏈接:https://www.zhihu.com/question/21574535/answer/18998914
轉載于:https://www.cnblogs.com/Ycheng/p/7168995.html
總結
以上是生活随笔為你收集整理的实现instanceof关键字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IDEA Spring框架入门实例
- 下一篇: js 根据所输内容生成助记码