简体   繁体   English

如何在ArrayList中传递可序列化的对象

[英]How pass a serializable object inside a ArrayList

I have a class call MyClass that implements Serializable, Cloneable with his strings, int, setters, getters methods. 我有一个名为MyClass的类,该类使用其字符串,int,setters,getters方法实现Serializable,Cloneable。 Now, I have this two methods, in another class, that works fine separately. 现在,在另一个类中,我有这两种方法,它们分别可以正常工作。

1) 1)

public void myStatus(final MyClass a, final boolean b) {
.
.
.
}

2) 2)

public void secondStatust(final ArrayList<MyClass> as, final boolean b) {
.
.
.
}

That I want to do is call the method 2 inside the method 1, something like this: 我想做的是在方法1中调用方法2,如下所示:

public void myStatus(final MyClass a, final boolean b) {

        secondStatust(a, b);
}

But I can't do it, because the second method is waiting a ArrayLis.... 但是我做不到,因为第二种方法正在等待ArrayLis。

Some suggestions?? 一些建议?

Thanks in advance 提前致谢

You can do this 你可以这样做

public void myStatus(final MyClass a, final boolean b) {
    ArrayList<MyClass> arraylist = new ArrayList<MyClass>();
    arraylist.add(a);
    secondStatust(arraylist, b);
}

Put the 'a' object in the arraylist object and pass it to secondStatust 将'a'对象放入arraylist对象,并将其传递给secondStatust

You may also use double brace initialization , but be aware of the downsides : 您也可以使用双花括号初始化 ,但要注意缺点

 public void myStatus(final String a, final boolean b) {
    secondStatust(new ArrayList<String>() {{ add(a); }}, b);
 }

Downsides include: 缺点包括:

  • Bad readability 可读性差
  • Creation of a new (anonymous) type 创建新的(匿名)类型
  • Risk for memory leaks 内存泄漏的风险

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM