java - Getter Setter 不返回任何内容-Java

标签 java android getter-setter

我的第一个 list1 和我的列表显示了正确的值,但第二个 list1 什么也没显示:

public class IcsList {
ArrayList<String> list1= new ArrayList<String>();
public ArrayList<String> list(ArrayList list){
     this.list1= list;
    Log.i("list1", "" + list1);
    Log.i("list", "" + list);
    setList();
     return list;
}
public ArrayList setList(){
    Log.i("list1", "" + list1);
    return list1;
   }

这是我的日志:

04-27 21:45:10.094  31548-31597/com.parse.starter I/list﹕ [B Soccer @ Liberty, Apr 28 2015 5:30 PM, KGHS Athletics, G Soccer v Liberty (home), Apr 28 2015 5:30 PM, KGHS Athletics
04-27 21:45:10.133  31548-31597/com.parse.starter I/list1﹕ [B Soccer @ Liberty, Apr 28 2015 5:30 PM, KGHS Athletics, G Soccer v Liberty (home), Apr 28 2015 5:30 PM, KGHS Athletics
 04-27 21:45:10.133  31548-31548/com.parse.starter I/list1﹕ []

顺便说一句,我试图通过将字符串值添加到该类中的数组列表来在另一个类中使用此数组列表。 setList() 可以让它变空吗?我应该改为说“return this.list1”吗?顺便说一句,另一个类中有一个数组列表,我正在调用列表。(ArrayList)。 getter 将在另一个类中调用以检索此数组列表。这个类就像是两者之间的接力。

在我的第一个类中,我在 IcsList 中设置了 arrayList:

ArrayList<String> arrayList = new     ArrayList();
 //add to arrayList
 IcsList list = new IcsList();
 list.list(arrayList);

从 IcsList 中检索到的类:

  ArrayList<String> arrayList = new     ArrayList();

 IcsList list = new IcsList();
arrayList=  list.setList();

最佳答案

Taylor:根据你最后的回答——你有一些误解:

类 IcsList 有静态列表 1。这意味着所有实例共享相同的 ONE list1 ArrayList。因此,无论何时何地使用您的类 - 它始终是同一个 list1 对象。

更奇怪的是——你在 IcsList 的构造函数中初始化了这个 list1。这意味着在您至少创建一个 IcsList 实例之前,list1 为空。这是不切实际和令人困惑的。更糟糕的是——每个新的 IcsList() 都会用新的空 ArrayList 更新这个 list1。这也很奇怪。

您最后的代码表明您创建了 list2,然后立即覆盖了它的 list1 引用。这也没有意义。

我假设你想要的是这样的:

public class IcsList {
private ArrayList<String> list1;
   public IcsList(){
      list1 =new ArrayList<String>();
   }


   public static ArrayList<String> getList1(){
      return list1;
   } 
}

那么第二个是正确的(假设蜂蜜是“蜂蜜”),第三个是

ArrayList<String> list2= = icsList.getList1(); // this is list1 from existing object icsList
if (list2.contains(honey)) System.out.println("honey is here");
if (icsList.getList1().contains(honey)) System.out.println("honey is still here");

关于java - Getter Setter 不返回任何内容-Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29908939/

相关文章:

php - protected 突变体(setters)

c++ - 检查输入的有效性 - Setter 函数

Java单进程多线程

android - 无法获取 OverlayItem Drawable 的高度

android - "Failed sending reply to debugger: Broken pipe"尝试在 Android 设备上运行应用程序时

java - 我的 setter 未设置

java - 根据缩进创建文件夹/文件路径

java - 自定义java颜色创建器?

java - 将具有动态键的嵌套对象映射到 Java 对象

android - MonkeyRunner:更可靠的等待和全长截图?