gpt4 book ai didi

java - 实现 java.io.Serialized 的两种类型的 Arraylist

转载 作者:行者123 更新时间:2023-12-01 06:52:06 25 4
gpt4 key购买 nike

例如我有:

    public class Class1 implements Serializable {
private static final long serialVersionUID = 1L;
private int a;
private int b;

/*Getters and setters here*/
public int getA();
}

public class Class2 implements Serializable {
private static final long serialVersionUID = 1L;
private int a;
private int b;

/*Getters and setters here*/
public int getA();
}

现在我想创建这两种类型的 ArrayList。这就是我正在尝试的:

List<Serializable> list= new ArrayList<Serializable>();

我有一个返回可序列化的方法,它返回列表中的对象:

  public Serializable get(int i)
{
return list.get(i);
}

但是,当我尝试使用上面两个类中的 getter 方法(例如 list.get(0).getA())时,会出现错误,指出 getA() 方法没有为 Serialized 定义。我在这里缺少一些简单的东西吗?为了使用 getter 方法,上面方法的返回类型应该使用什么?谢谢。

最佳答案

这两个类都是可序列化的,但可序列化没有定义任何方法。

您需要自己定义一个包含 getA() 方法的基类或接口(interface),然后您可以使用它们来引用它们。

请记住,虽然在这种情况下,您拥有的唯一可序列化类是 Class1Class2,但在大多数情况下您不能保证这一点。可能还有另一个实现 Serialized 的 Class3,但没有 getA 方法。

关于java - 实现 java.io.Serialized 的两种类型的 Arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22693856/

25 4 0