如何在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;
它会起作用。
这有什么区别:
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;
它会起作用。