gpt4 book ai didi

android - Android : Boolean in "1" or "0" 中的简单库

转载 作者:太空狗 更新时间:2023-10-29 13:39:26 24 4
gpt4 key购买 nike

简单的库很棒,我已经解析了很多自最近 3 天以来,来自 soap 服务器的 XML 不同,但我遇到了具有“0”或“1”的 bool 属性:

<list mybool1="0" mybool2="1" attr1="attr" attr2="attr">
<page mybool3="1">
...
</page>
<page mybool3="0">
...
</page>
...
</list>

我试图创建这个类:

public class Boolean01Converter implements Converter<Boolean>
{
@Override
public Boolean read(InputNode node) throws Exception {
return new Boolean(node.getValue().equals("1"));
}
@Override
public void write(OutputNode node, Boolean value) throws Exception {
node.setValue(value.booleanValue()?"1":"0");
}
}

并在我的对象定义中实现它:

@Root(name="list")
public class ListFcts
{
@Attribute
@Convert(Boolean01Converter.class)
private Boolean mybool1;

@Attribute
@Convert(Boolean01Converter.class)
private Boolean mybool2;

@Attribute
private int ...

@ElementList(name="page", inline=true)
private List<Page> pages;

public Boolean getMybool1() {
return mybool1;
}
}

但对于每个 bool 值,我仍然得到 false。

[编辑]事实上,当我这样做时:

@Override
public Boolean read(InputNode node) throws Exception {
return true;
}

我仍然得到 false :

Serializer serial = new Persister();
ListFcts listFct = serial.read(ListFcts.class, soapResult);
if(listFct.getMybool1())
{
//this never happens
}else{
//this is always the case
}

所以我的转换器没有影响...

另外:我怎样才能将转换器附加到 Persister 而不是在@Attributes 上声明它一百次?

提前致谢!!

[edit2]

我放弃了 Converter,这是我自己的解决方案:

@Root(name="list")
public class ListFcts
{
@Attribute
private int mybool1;

@Attribute
private int mybool2;

public int getMybool1() {
return mybool1;
}

public Boolean isMybool1() {
return (mybool1==1)?true:false;
}

...
}

最佳答案

您的代码使用 node.getValue() 返回每个 XML 节点的(读取:内容)(示例中的“...”位).

您需要读取属性值,例如 node.getAttributeValue("mybool1").equals("1")

关于android - Android : Boolean in "1" or "0" 中的简单库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7610304/

24 4 0
文章推荐: android - 开发 NFC 应用程序的阶段
文章推荐: html - CSS "width: auto"不适用于
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com