簡體   English   中英

如何在Android中初始化類的字段?

[英]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的活動中使用類的對象,但是在第一個myList中正確初始化,在第二個中它不是initializ。為什么? 謝謝。

沒什么區別,首先您使用構造函數對其進行初始化,其次您隨后對其進行初始化。 但是代替這個:

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;

它會工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM