Java 打印数组的内容只返回[null,null,null,null]

Java 打印数组的内容只返回[null,null,null,null],java,arrays,Java,Arrays,尝试使用printPresidentNames方法输出数组PresidentNames的内容时,我得到的输出结果是[null,null,null,null]将主方法的第一行更改为: import java.util.Arrays; public class ArraysLab1 { static String[] PresidentNames = new String[5]; public static void main(String[] args) {

尝试使用printPresidentNames方法输出数组PresidentNames的内容时,我得到的输出结果是[null,null,null,null]

将主方法的第一行更改为:

import java.util.Arrays;

public class ArraysLab1 
{

    static String[] PresidentNames = new String[5];

    public static void main(String[] args) 
    {
        //Declare an array of 5 strings
        String[] PresidentNames =  {"George Bush", "William J. Clinton", "George W. Bush", "Barrack H. Obama", "Donald J. Trump"};
        //Print the array values using the printPresidentNames method
        ArraysLab1.printPresidentNames();
        //Sort the array of names
        Arrays.sort(PresidentNames);
        //Reprint the array values using the printPresidentNames method
        ArraysLab1.printPresidentNames();
    }

    public static void printPresidentNames()
    {
        System.out.println(Arrays.toString(PresidentNames));
    }
}


因为PresidentNames是类中的一个字段,您需要初始化它。在当前代码中,它被定义为main方法的局部变量。这是一个关于类成员的好方法。

只要从主函数的第一行删除字符串[],它就会正常工作。@jrook这样做了,编译器会抛出一个错误,读取数组常量只能在初始化器中使用。这将修复它。这意味着我需要初始化它一次,然后在向它添加数据时再次初始化它?当我删除原始初始化时,它不能用任何方法解决。我得出的结论是,我需要初始化两次,否则它会崩溃并烧毁;看看它是否有效:
    PresidentNames =  new String[] {"George Bush", "William J. Clinton", "George W. Bush", "Barrack H. Obama", "Donald J. Trump"};