我找不到Boolean
类中将Boolean序列化为"1"和"0"而不是"true"和"false"的方法。
是否有本地函数可以实现此功能?如果没有,最佳方式是什么(最优化的方式)?
更新:我确实想把Boolean
转换成一个String
。
我找不到Boolean
类中将Boolean序列化为"1"和"0"而不是"true"和"false"的方法。
是否有本地函数可以实现此功能?如果没有,最佳方式是什么(最优化的方式)?
更新:我确实想把Boolean
转换成一个String
。
如果你想从给定的Boolean
生成一个String
,那么是的,没有内置方法可以生成"0"或"1",但你可以很容易地编写它:
public static String toNumeralString(final Boolean input) {
if (input == null) {
return "null";
} else {
return input.booleanValue() ? "1" : "0";
}
}
根据您的使用情况,如果input
为空,则让它抛出NullPointerException
可能更合适。 如果这适用于您的情况,那么您可以将该方法简化为第二个return
行。
public static Integer booleanToInteger(Boolean bool)
{
if(bool == null) return null;
else return bool.compareTo(Boolean.FALSE);
}
Boolean.FALSE
作为参数,以避免自动装箱。 - Joachim Sauerpublic static char toChar(final Boolean b) {
return b == null ? '?' : b ? '1' : '0';
}
我不确定,但只是随便说一下。你可以使用自己的装饰器类。
TSerializer serializer = new TSerializer(new TSimpleJSONProtocol.Factory());
String json = serializer.toString(object);
它将布尔值转换为0或1,而不是true/false。
Boolean
序列化为"true"和"false"?或者你只是在谈论如何从Boolean
生成一个String
? - Joachim Sauerb
为一个布尔值:int i = b ? 1 : 0;
。 - Kevinint i == b ? 1 : 0;
吗? - Eng.Fouad