[英]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.