java B类方法访问A类的static变量

public class A{
    public static ArrayList<String> list = new ArrayList();
    public static void main(String[] args){
        list.add("abc");
   }
}

public class B{
    public static ArrayList f(){
        ArrayList<String> list_b = A.list;
        System.out.println(list_b);
    }
}

为什么打印出来的list_b是空的?

在A类的主方法中打印一段字符试试,不清楚类的初始化会不会调用类的主方法。

试了一下好像不会初始化Main方法,主动在B类里调用A的main方法,才会有结果。

public class ClassA {
	public static ArrayList<String> list = new ArrayList();
	static{
		list.add("abc");
		System.out.println("A初始化了");
	}
    public static void main(String[] args){
        list.add("abc");
        System.out.println("A初始化了");
   }
}



public class ClassB {
	public static void f(){
        ArrayList<String> list_b = ClassA.list;
        System.out.println(list_b);
    }
	
	public static void main(String[] args) {
		/*ClassA a=new ClassA();
		System.out.println(ClassA.list);
		结果:
		A初始化了
		[abc]*/
		ClassB.f();//结果   A初始化了
				   //[abc]
	}
}

 

在A的main函数中加个打印,看看有没有执行,没执行的话肯定是空的。如有帮助,请采纳一下,谢谢。

恕我眼拙,你这想把list_b打印出什么?main方法是在A类中,B中的又不是main方法,System.out.println(list_b);  这个方法应该是根本没有调用的。main是一个关键字,不是静态方法都能直接执行的。

如果觉得回答还可以,可采纳!