如何访问内部类的局部变量

时间:2017-07-27 12:16:02

标签: java arrays inner-classes

我有一个类为array的内部类。我想访问外部类外部的内部类中的局部变量。

public class Fruits {

    public Citrus citrus[];
}
public class Citrus{

    public String lemon;
    public String orange;
}

现在我想从这些类之外的内部类中获取变量lemon。 我得到的错误类无法解析为

3 个答案:

答案 0 :(得分:0)

尝试将public Fruits citrus[];更改为public Citrus citrus[];

答案 1 :(得分:0)

我为你找到了一条路。 当你使用数组时,你应该使用索引来访问数组的每个项目。

public class Fruits {

    public Citrus citrus[];

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

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

现在你可以从阵列中获得柠檬和橘子。

答案 2 :(得分: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));

    }
}