开发者社区> 问答> 正文

有关Java static的疑问

public class StaticTest {
private static List<String> listA;
private static List<String> listB;

static {
    listA = new ArrayList<String>();
    listA.add("aaa");

    setB(listB);
}

public static void main(String[] args) {
    System.out.println(listA == null);
    System.out.println(listB == null);
}

private static void setB(List<String> listB) {
    if (listB == null) {
        listB= new ArrayList<String>();
        listB.add("bbb");
    }
}
}

我不知道为什么listB是空的,谁能详细解释下?

展开
收起
蛮大人123 2016-03-18 16:25:52 1780 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    setB方法里面的listB被你重新new了,就和private那个不是同一个对象了,所以listB是空的.

    2019-07-17 19:06:56
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载