如何在android中初始化class的字段?

How to initialize field of class in android?

这有什么区别:

    public class A 
{ 
List<String> myList;
        public A(List<String> list)
 {
        myList = new ArrayList<String>();
        myList = list; 
} 
} 

        public class main extends Activity 
{
        public void func(List<String> l) 
{    A obj = new A(l); 
}
 }

还有这个:

      public class A 
    { 
    List<String> myList;
            public A()
     {
            myList = new ArrayList<String>();
             } 
    } 
            public class main extends Activity
     {
            public void func(List<String> l)
     {   
     A obj = new A();
    obj.myList = l;
     } 

}

它们都实现了在 android 中的 activity 中使用 class 的对象,但在第一个 myList 中正确初始化,在第二个中它不是 initializ.Why ? 谢谢

没有区别,首先你用构造函数初始化它,然后再初始化它。但不是这个:

myList = new ArrayList<String>();
myList = list; 

我更喜欢这个:

myList = new ArrayList<String>(list);

在代码方面没有区别,除了在第二种情况下您没有初始化列表,这就是它没有被初始化的原因。这么改就可以了

      A obj = new A();
      l = new ArrayList<String>(); //This is called initialization.
      obj.myList = l;

它会起作用。