【问题标题】:How can I store classes in Array/Arraylists/Lists whatever? [closed]如何将类存储在 Array/Arraylists/Lists 中? [关闭]
【发布时间】:2021-05-17 04:48:46
【问题描述】:

在Java中是否可以存储classes...

Class1 class1 = new Class1();

...在Arrays/ArrayLists,不知何故是这样的:

ArrayList<> classArray = new ArrayList();
classArray.add(class1);

这显然行不通,但它怎么行呢?

【问题讨论】:

  • 你的意思是如何存储某个类的对象,还是要问如何存储Class对象而不是代表一个类?
  • 不像一个实际的类,像类Fragment1,它显示一个片段。我想将整个 Fragment 类存储在列表中

标签: java android arrays class arraylist


【解决方案1】:

当然可以。您只需在创建数组列表时指定要存储的对象类型:

ArrayList<Class1> classArray = ArrayList<Class1>();
classArray.add(class1);

【讨论】:

  • 但是当变量有多个Classes时,不知道ArrayList里面有哪些?
  • 您要么需要将其设为通用 Java 对象 ArrayList,要么需要围绕它创建一个包装器。您可以查看stackoverflow.com/questions/19602601/…
  • 可以使用List,但我不会这样做。
【解决方案2】:

如果类只能是Class1

ArrayList<Class1> list = new ArrayList<Class1>();

以上代码不允许任何其他类对象,它只能存储 Class1 类型的对象

如果你想存储任何类对象

ArrayList<Object> list = new ArrayList<Object>();

对象是java中所有东西的父类,这就是它可以存储任何类的对象的原因

【讨论】:

  • 假设我有那个 ArrayList 和我的班级,它工作正常。但是现在我想把应用程序某部分的一个fragment改成另外一个,另外一个就是我ArrayList里的那个。如何将 ArrayList 放入:manager.beginTransaction().replace(R.id.fragment_one, new //ArrayList with Class//).commit();
  • manager.beginTransaction().replace(R.id.fragment_one, new ArrayList(listThatYouWantToPut)).commit();请记住,如果要添加类型安全性,请使用 new ArrayList() else ArrayList()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-26
  • 2013-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多