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

How to access local variables of inner class

我有一个 class,内部 class 类型为数组。我想访问外部 class 之外的内部 class 中的局部变量。

public class Fruits {

    public Citrus citrus[];
}
public class Citrus{

    public String lemon;
    public String orange;
}

现在我想从这些 class 之外的内部 class 获取变量 lemon。 我收到错误 class cannot be resolved to type

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

我帮你想办法。 当你使用数组时,你应该使用索引来访问数组的每一项。

public class Fruits {

    public Citrus citrus[];

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

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

现在你可以从数组中获取柠檬和橙子。

我认为您只想从外部访问内部 class。 如果您只想实例化内部 class.

,下面的代码片段可能会有所帮助

代码不言自明,只需通过评论即可。

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));

    }
}