我的问题很简单,但我什么也找不到。
我有一个列表类和一个用于XML序列化的入口类:
@Root(name = "entries")
public class List {
@ElementList(required = false, entry = "entry", inline = true, empty = true)
private List<Entry> entries;
}
@Root
public class Entry {
@Element(name = "entry_id", required = true)
private long id;
@Element(name = "text", required = true)
private String Text;
}
我试图解析这个XML,它在列表中没有任何条目:
<entries>
<entry />
<entries>
返回以下错误:
W/System.err(3335): org.simpleframework.xml.core.ValueRequiredException: Unable to satisfy @org.simpleframework.xml.Element(data=false, name=entry_id, required=true, type=void) on field 'id' private long com.android.apps.model.Entry.id for class com.android.apps.model.Entry at line 2
我做错了什么?元素列表设置为空=真,必需=假。有人能帮忙吗?
为了避免分析中的错误,应该放置注释标签@set e@get
@Root(name = "entries", strict = false)
public class List {
@set:ElementList(required = false, entry = "entry", inline = true, empty = true)
@get:ElementList(required = false, entry = "entry", inline = true, empty = true)
private List<Entry> entries;
}
@Root
public class Entry {
@set:Element(name = "entry_id", required = true)
@get:Element(name = "entry_id", required = true)
private long id;
@set:Element(name = "text", required = true)
@get:Element(name = "text", required = true)
private String Text;
}
您可以手动检查空元素:
@Root(name = "entries")
@Convert(List.ListConverter.class) // Set the converter
public class List
{
@ElementList(required = false, entry = "entry", inline = true, empty = true)
private java.util.List<Entry> entries;
public void add(Entry e)
{
// Just for testing
entries.add(e);
}
static class ListConverter implements Converter<List>
{
@Override
public List read(InputNode node) throws Exception
{
List l = new List();
InputNode child = node.getNext("entry");
while( child != null)
{
if( child.isEmpty() == true ) // child is an empty tag
{
// Do something if entry is empty
}
else // child is not empty
{
Entry e = new Persister().read(Entry.class, child); // Let the Serializer read the Object
l.add(e);
}
child = node.getNext("entry");
}
return l;
}
@Override
public void write(OutputNode node, List value) throws Exception
{
// Not required for reading ...
throw new UnsupportedOperationException("Not supported yet.");
}
}
}
如何使用:
Serializer ser = new Persister(new AnnotationStrategy()); // Set AnnotationStrategy here!
List l = ser.read(List.class, yourSourceHere);
文档:
如果值之一为则抛出。我不理解这种行为,映射可以包含空指针作为值没有任何问题。的值不能为null有什么好的原因吗? 还有,是否有一个很好的Java 8方法来修复这个问题,或者我应该恢复到普通的老for循环? 我的问题的一个例子: 堆栈跟踪: Java 11号还存在这个问题。
我正在尝试创建一个列表,列出在FTP服务器上的文件夹中找到的所有文件名。完整目录与登录凭据一起保存在设置数据库表中。它连接到FTP区域很好,我可以上传/下载文件。 这是我从文件夹中获取文件的代码。 我遇到的问题是,当前我试图搜索的文件夹是空的,但它找到了2个文件。 为什么会这样? 中的值是 这是我在FileZilla中打开它时的文件夹-它肯定是一个空文件夹。 如何查看系统文件中的所有文件并将其放入
我正在使用javafx构建一个GUI,包括一个带有菜单栏的GridPane和另一个GridPane。我希望第二个GridPane是可滚动的,所以我将它放入一个scroll pane“new scroll pane(grid 2)”,并将其添加到第一个GridPane中。不幸的是,ScrollPane的内容不再水平拉伸,如果窗口大小改变,什么是需要的。 这是一张图片,应该可以澄清问题:http://
我一直在努力在MySQL中输入空白值。例如,代码: 不会工作。我总是收到以下错误: 但是,当我运行以下两个语句之一时: 或 这个查询工作得很好。column2的默认值已设置为“0”,仍然没有运气。 我面临的问题是所有表中的所有列。我的申请将有空白条目(无法更改)。这个功能以前工作得很好,当我将应用程序代码转移到另一个服务器时,我开始出现这个错误。 MySQL服务器版本:8.0.22-MySQL社区
我使用,并希望显示玩家得分的条形图,得分在y轴上,玩家的游戏在x轴上分组。 例如 由于玩家不必玩相同数量的游戏,因此在创建数据集时会产生大量空白,因为它试图为玩家2绘制一个条 有谁能帮我把这个空白处补上吗?理论上,玩家1可以继续玩100场游戏,而玩家2和3只玩几场,所以这看起来很荒谬!我是JFreeChart的新手,所以可能有一个明显的解决方案! 提前感谢您的帮助。
我使用的是Chart.js2.5.0版本,需要知道是否有任何方法可以隐藏分组堆叠条形图中每组的空条?图表数据集中的某些数据值可以为空。 这里是我想要的:组合图表类型(分组和堆叠) 小提琴:https://jsfidle.net/q_sabawoon/atlxlg7x/ 请帮帮忙。