gpt4 book ai didi

java - 为什么 not work with java. util.Iterator?

转载 作者:行者123 更新时间:2023-11-29 03:22:01 25 4
gpt4 key购买 nike

为什么 JSF2/Facelet 的 ui:repeat 不接受 java.util.Iterator 的值?人们可以在迭代器后面隐藏如此多的实现和内存保护,因为不需要知道长度,拥有它会非常有用。但是我需要将我的迭代器转换为列表并放弃我所有的优势以便 ui:repeat。

可能有阶段或时间或可序列化的原因,但我浏览可用的文档并没有给出这些原因。难道我们还没有使这种不可能成为可能的科学吗?

最佳答案

<ui:repeat>不支持 java.util.Iterator .
看看UIRepeat.getDataModel()源代码:

 private DataModel getDataModel() {
if (this.model == null) {
Object val = this.getValue();
if (val == null) {
this.model = EMPTY_MODEL;
} else if (val instanceof DataModel) {
//noinspection unchecked
this.model = (DataModel<Object>) val;
} else if (val instanceof List) {
//noinspection unchecked
this.model = new ListDataModel<Object>((List<Object>) val);
} else if (Object[].class.isAssignableFrom(val.getClass())) {
this.model = new ArrayDataModel<Object>((Object[]) val);
} else if (val instanceof ResultSet) {
this.model = new ResultSetDataModel((ResultSet) val);
} else {
this.model = new ScalarDataModel<Object>(val);
}
}
return this.model;
}

关于java - 为什么<ui :repeat> not work with java. util.Iterator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23042675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com