2017-07-27 99 views
-2

我有一個具有類型數組的內部類的類。我想訪問外部類之外的內部類的局部變量。如何訪問內部類的局部變量

public class Fruits { 

    public Citrus citrus[]; 
} 
public class Citrus{ 

    public String lemon; 
    public String orange; 
} 

現在我想從內部類獲得的變量lemon這些類之外。 我得到的錯誤類不能被解析爲輸入

+0

我猜,'檸檬'和'桔子'是Citrus類的實例變量,不是局部變量。 – gprathour

+4

這是什麼?你想做什麼?使用嵌套類的目的是什麼? –

+0

看起來你應該把注意力放在簡單的語法上,然後再轉向內部類。由於語法錯誤,您發佈的代碼甚至不會編譯。 –

回答

0

我找到U A的方式。 當你使用數組時,你應該使用索引來訪問數組中的每一項。

public class Fruits { 

    public Citrus citrus[]; 

    public void test() { 
     String temp=citrus[0].lemon; 
    } 

} 
class Citrus { 
    public String lemon; 
    public String orange; 
} 

現在在你可以得到檸檬和橙子陣列。

0

嘗試改變public Fruits citrus[];public Citrus citrus[];

+0

對不起,我輸入它錯了,但它已經像這樣 – learningUser

0

我想所有你想要從外部訪問內部類。 如果你只是想實例化內部類,下面的代碼片斷可能會有幫助。

代碼不言自明只是通過評論。

public class Fruits { 

    public Citrus[] Citrus; 

    public class Citrus { 

     public String lemon; 
     public String orange; 

     @Override 
     public String toString() { 
      StringBuilder builder = new StringBuilder(); 
      builder.append("Citrus [lemon="); 
      builder.append(lemon); 
      builder.append(", orange="); 
      builder.append(orange); 
      builder.append("]"); 
      return builder.toString(); 
     } 


    } 

    public static void main(String...args) 
    { 

     //create the Fruits Object 
     Fruits f = new Fruits(); 
     //Array Declaration for inner class 
     Fruits.Citrus[] citrusArray = new Fruits.Citrus[1]; 
     //instanciate the inner class 
     Fruits.Citrus citrus = f.new Citrus(); 
     //assigning the value 
     citrus.lemon = "Lemon"; 
     citrus.orange="Orance"; 

     //set instance of inner class into the array of inner class 
     citrusArray[0]=citrus; 
     //setting array into the insatnce variable of Fruits class 
     f.Citrus = citrusArray; 
     //printing the result 
     System.out.println(Arrays.toString(f.Citrus)); 

    } 
}