簡體   English   中英

將對象向下轉換為 java 中的引用

[英]Downcasting Objects to references in java

我正在處理一項任務,但不理解向下轉換。 For example, class Reference.java and I'm in a method that passes an object in. If that object is of type (not sure if that is the right word) then create a new Reference object. 這是我現在擁有的,但它不起作用。

public method(Object obj){
     if( obj instanceof Reference){
          Object obj = new Reference();
     }
}

現在 Reference.java 的構造函數需要兩個參數,我也不明白在向下轉換時這將如何工作。

Object obj = new Reference();

這是一個向上的場景。


如果你想要向下轉換,那么它將是,

Reference ref = (Reference) obj;

當它起作用時/當它可能時,

  • 假設您使用參考class(子 ZA2F2ED4F8EBC2CBB14C21A29DZ40 參考)創建了一個Object class 實例
Object obj = new Reference();

這是一種上調。 你可以這樣做,

  • 在這種情況下,您可以在沒有任何ClassCastException的情況下進行向下轉換
Reference ref = (Reference) obj;
  • 但是,當您不清楚時,Cast 是否安全? 這次instanceof可以幫助你。 所以完整的工作代碼應該是 -
class Reference extends Object{ //not necessary extends Object class, but for 
                                //clearification
  ...

  public static void method(Object obj){
    if(obj instanceof Reference){
      Reference ref = (Reference) obj;
    }
  }
}

在主要方法中,

public static void main (String [] args) {  
    Object _obj = new Reference();  
    Reference.method(_obj);  
    //downcast successfull
}  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM