gpt4 book ai didi

java - Apache 节俭,Java : Object Data Types

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:15:01 26 4
gpt4 key购买 nike

关于数据类型,我坚持使用 Thrift。

现在,当我将 Integer 值映射到 thrift 生成的 bean 时,我在 idl 定义中使用了 i32 类型。

class MyBean {
Integer i = null;
}

struct TMyBean {
1: i32 i;
}

问题是在 TMyBean 生成的 bean 中,i var 是一个 int 基本类型,而不是将 0 作为默认值,而对我来说 0 是一个有效值。

我尝试将 optional 关键字放入 idl 文件中,但事情没有改变,它始终是 int。

我该如何处理这种情况?我需要在 TMyBean i var 中接受空值。

谢谢,菲德拉..

最佳答案

optional 关键字是正确的选择。

要测试是否设置了特定的optional 字段,请使用isset 标志:

struct MyBean {
1: i32 IntValue
}

给予

public class MyBean implements org.apache.thrift.TBase<MyBean, MyBean._Fields>, java.io.Serializable, Cloneable, Comparable<MyBean> {

// ... lots of other code omitted ...

// isset id assignments
private static final int __INTVALUE_ISSET_ID = 0;
private byte __isset_bitfield = 0;

// ... lots of other code omitted ...

/** Returns true if field IntValue is set (has been assigned a value) and false otherwise */
public boolean isSetIntValue() {
return EncodingUtils.testBit(__isset_bitfield, __INTVALUE_ISSET_ID);
}

public void setIntValueIsSet(boolean value) {
__isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __INTVALUE_ISSET_ID, value);
}

// ... even more code omitted ...

}

关于java - Apache 节俭,Java : Object Data Types,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21576060/

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