从类内部与从方法内部调用对象的方法

soti84

这可能是一个非常基本的问题,但是在我学习Java的这个阶段使我感到困惑。我有以下代码:

    package com.soti84;

    import java.util.ArrayList;

    public class InvokeMethod {

    public static void main(String[] args) {

    ArrayList<String> exams= new ArrayList<String>();
    exams.add("Java"); 
    exams.add("C#");    

    }           

    }

如果我将实例化ArrayList对象的行和对该对象的调用移到该方法之外,则创建该对象的行很好,但是不允许对该对象进行add()方法调用。这是为什么?

    package com.soti84;

    import java.util.ArrayList;

    public class InvokeMethod {
    ArrayList<String> exams= new ArrayList<String>();
    exams.add("Java"); 
    exams.add("C#");    

    public static void main(String[] args) {

    }   

    }

谢谢。

沙多夫

您根本无法在方法之外执行该代码。如果要执行此操作,则需要初始化程序块或静态块。

public class InvokeMethod {
    ArrayList<String> exams= new ArrayList<String>();
    {
      exams.add("Java"); 
      exams.add("C#"); 
    }

现在,当您创建实例时,该块将执行。如果您的变量是静态的,则可以将该块设为静态(只需static在该块之前添加)。当您的类初始化时,将执行静态块。当您需要填充的静态列表/映射时,这些块会非常方便。当然,所有方便编程的方法都可能是一种不好的做法,在这里,同样,那些块也被某些人所皱眉,它们可能非常危险,并导致难以发现的错误(主要是执行顺序)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章