0
我們使用Spring Webflow來處理某些帶有步驟的表單。在其中一個我們有一個動態元素列表(用戶可以添加更多的元素)。我們使用此代碼要做到這一點,和完美的作品:Spring Webflow不支持「自動增長」列表中的泛型?
@Data
@Accessors(chain = true)
public class AutoGrowList implements Serializable {
private static final long serialVersionUID = -1328646310268097912L;
@Getter
private final List<ConcreteItemView> data;
public AutoGrowList() {
data = new ArrayList<ConcreteItemView>();
}
public AutoGrowList(List<ConcreteItemView> list) {
data = new ArrayList<ConcreteItemView>(list);
}
public int getSize() {
return data.size();
}
public void setSize(int size) {
int index = data.size() - 1;
for (; index >= size; index--) {
data.remove(index);
}
}
}
正如你可以在代碼中看到,該列表元素的類型是ConcreteItemView。我們要重構這個類與其它元素使用它,使用泛型,像這樣:
@Data
@Accessors(chain = true)
public class AutoGrowList<T extends AbstractView> implements Serializable {
private static final long serialVersionUID = -1328646310268097912L;
@Getter
private final List<T> data;
public AutoGrowList() {
data = new ArrayList<T>();
}
public AutoGrowList(List<T> list) {
data = new ArrayList<T>(list);
}
public int getSize() {
return data.size();
}
public void setSize(int size) {
int index = data.size() - 1;
for (; index >= size; index--) {
data.remove(index);
}
}
}
但是......這不工作...它拋出一個java.lang.InstantiationException的一類Spring(Indexer.class)。 Spring Webflow不支持這種方式的泛型?