这有什么区别:
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正确初始化并且在seconde中它不是initializ。为什么? 感谢。
答案 0 :(得分:0)
没有区别,首先用构造函数初始化它,然后在稍后初始化它。但不是这样:
myList = new ArrayList<String>();
myList = list;
我更喜欢这个:
myList = new ArrayList<String>(list);
答案 1 :(得分:0)
除了在第二种情况下你没有初始化列表这就是为什么它没有被初始化的事实之外,没有差异代码。像这样改变,然后它会起作用
A obj = new A();
l = new ArrayList<String>(); //This is called initialization.
obj.myList = l;
它会起作用。