我有以下扩展 ArrayList 的对象结构。检索时,List 为空,因此没有任何值存储在微流对象图中。不确定这是不是
- 一个错误
- 不支持的功能
- 必须实现 CustomHandler
创建FooTable对象和 toString 的代码导致
FooTable(super=TableListImpl(super=[a, b, c], tableNo=1, datatableNo=2), baz=baz)
FooTable foo = new FooTable(1,2);
foo.setBaz("baz");
foo.add("a");
foo.add("b");
foo.add("c");
System.out.println(foo1.toString());
将 FooTable 存储在 MicroStream 中。停止/启动应用程序/数据库并检索 FooTable 并且列表为空。有趣的是,当检查对象变量“size=3”时。看来微流看不到这个对象扩展列表的事实,并且只保留其他值而忽略列表。
有关如何在不更改对象结构的情况下解决此问题的任何建议。
注意:为简洁起见,此处使用 Lombok。
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString(callSuper = true)
public class FooTable extends TableListImpl<String> {
public FooTable(int tableNo, int datatableNo) {
super(tableNo, datatableNo);
}
private static final long serialVersionUID = 1L;
private String baz;
}
import java.util.ArrayList;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
@RequiredArgsConstructor
@Getter
@ToString(callSuper = true)
public abstract class TableListImpl<E> extends ArrayList<E> implements TableList<E> {
private static final long serialVersionUID = 1L;
private final int tableNo;
private final int datatableNo;
}
import java.util.List;
public interface TableList<E> extends List<E>, Table {
}
public interface Table {
public int getTableNo();
public int getDatatableNo();
}