我有一个类,它包含Class所在的同一对象的公共静态数组列表,因此该类称为Image,Class中的Array列表是ArrayList。我有一个方法来存储Class中的对象,如果我做list.add(this),public void方法会将对象存储在ArrayList中供所有人使用吗?我有点新,很抱歉,如果这听起来很愚蠢或任何XD或没有意义。基本上我想在Image Class中创建一个Image Objects的存储系统,现在初始化的Image Objects可以执行函数ImageExampleObject.addLib(),这个公共方法addLib()执行list.add(this),list是Image的ArrayList对象。这有用吗?
我不知道如何搜索一个简短的句子来描述我想要找到的内容,这基本上就是为什么我在这个网站上没有找到任何问题,如果你打算问同样的话要说,有人已经问过,为什么你没有去看那个问题,你应该下次搜索。警:
问候:)
答案 0 :(得分:0)
答案是"是的有效"。
这是一个实现:
import java.util.ArrayList;
public class Image {
public static ArrayList<Image> list = new ArrayList<>();
public void addLib() {
list.add(this);
}
public static void main(String[] args) {
new Image().addLib();
new Image().addLib();
new Image().addLib();
for (Image image : list) {
System.out.println("Image "+image+" is in store");
}
}
}
输出:
Image Image@3f8b995c is in store
Image Image@6601879b is in store
Image Image@6e6e056e is in store
答案 1 :(得分:0)
我会在构造函数中将Item
添加到ArrayList
而不是方法。原因如下:
Image
的构造函数是您应该调用arrayList.add(this);
的地方。这样就可以在实例化时将Image
添加到static ArrayList
。这意味着您不必调用单独的方法来添加它们。这可以更好地保证所有Image
个实例都可以通过ArrayList
访问。
public class Image{
public static ArrayList<Image> arrayList = new ArrayList<>();
public Image(){
arrayList.add(this);
}
...
}
如果您只想选择存储的Image
,那么您需要slartidan的实现。
答案 2 :(得分:0)
我认为使用静态方法更新静态列表会更好:
public class Image {
public static ArrayList<Image> list = new ArrayList<>();
public static void addLib(Image image) {
Image.list.add(image);
}
public static void main(String[] args) {
Image.addLib (new Image());
Image.addLib (new Image());
}
}
我发现使用静态方法操作静态成员更清楚。