亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Java中,‘instanceof’操作符是用來做什么的?

在Java中,‘instanceof’操作符是用來做什么的?

達令說 2019-06-21 17:34:50
在Java中,‘instanceof’操作符是用來做什么的?什么是instanceof接線員?我見過這樣的東西if (source instanceof Button) {     //...} else {     //...}但這一切對我來說都沒有意義。我已經做了我的研究,但只提出了例子,沒有任何解釋。
查看完整描述

3 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

instanceof關鍵字是二元算子用于測試對象(實例)是給定類型的子類型。

想象一下:

interface Domestic {}class Animal {}class Dog extends Animal implements Domestic {}class Cat extends Animal implements Domestic {}

想象一下dog 對象,與Object dog = new Dog(),然后:

dog instanceof Domestic // true - Dog implements Domesticdog instanceof Animal   // true - Dog extends Animaldog instanceof Dog    
  // true - Dog is Dogdog instanceof Object   // true - Object is the parent type of all objects

然而,與Object animal = new Animal();,

animal instanceof Dog // false

因為AnimalDog可能也沒那么“精致”。

和,

dog instanceof Cat // does not even compile!

這是因為Dog既不是子類型也不是超級類型。Cat,而且它也沒有實現它。

請注意,用于dog以上類型Object..這是為了顯示instanceof運行時操作,并將我們帶到一個/用例:根據運行時的對象類型作出不同的反應.

要注意的事情:expressionThatIsNull instanceof T對所有類型都是false。T.

編碼愉快。


查看完整回答
反對 回復 2019-06-21
?
當年話下

TA貢獻1890條經驗 獲得超9個贊

如果表達式的左側為實例右側的類名。

這樣想吧。說你街區里所有的房子都是用相同的藍圖建造的。十個房子(物體),一套藍圖(類別定義)。

instanceof是一個有用的工具,當你有一個對象的集合,而你不知道它們是什么。假設您有一個窗體上的控件集合。您希望讀取任何復選框的選中狀態,但不能要求普通的舊對象提供其選中狀態。相反,您將看到每個對象是否是一個復選框,如果是,則將其轉換為復選框并檢查其屬性。

if (obj instanceof Checkbox){
    Checkbox cb = (Checkbox)obj;
    boolean state = cb.getState();}


查看完整回答
反對 回復 2019-06-21
?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

如上文所述本站:

這個instanceof運算符可用于測試對象是否為特定類型.

if (objectReference instanceof type)

一個簡單的例子:

String s = "Hello World!"return s instanceof String;//result --> true

然而,申請instanceof在空引用變量/表達式上返回false。

String s = null;return s instanceof String;//result --> false

由于子類是其超類的“類型”,所以可以使用instanceof來驗證這個.。

class Parent {
    public Parent() {}}class Child extends Parent {
    public Child() {
        super();
    }}public class Main {
    public static void main(String[] args) {
        Child child = new Child();
        System.out.println( child instanceof Parent );
    }}//result --> true

我希望這能幫到你!


查看完整回答
反對 回復 2019-06-21
  • 3 回答
  • 0 關注
  • 654 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號