当应该为真时,Android Studio 改造响应返回布尔值为假
Posted
技术标签:
【中文标题】当应该为真时,Android Studio 改造响应返回布尔值为假【英文标题】:Android Studio Retrofit Response returned boolean as false when is sould be true 【发布时间】:2021-08-09 16:01:23 【问题描述】:当我使用 Retrofit 从服务器获取对象到我的 android 应用程序时,所有非布尔值都是准确的,并且所有布尔值始终为 false,即使服务器发送它们为 true。 如果之前有人处理过这个问题,如果我能得到一些帮助,我会很高兴。
**我检查了属性为同名 Object boundary
这是来自应用程序调试模式内的服务器的响应 Response from server
这是服务器告诉我他发送到应用程序的内容
2021-05-20 14:30:53.440 调试 12404 --- [nio-8081-exec-2] cloud.logic.services.DeliverymanService : DeliverymanService GetRoute - 返回值:RouteBoundary(routeID=60a4d44aa63e6a30dce20968, deliverymanID=MXBkWizNBCQYUpxLfEdmy2kxAov2 , Deliveries=[609beaf5e8180842a0d1c62d, 609afbc00eb3232001fda466], isApproved=true, isSorted=true)
【问题讨论】:
【参考方案1】:我猜你的 Route
类中的问题 - 两个布尔字段都没有从服务器响应中填充并使用默认值。
可能Gson
使用getter 和setter 来反序列化值,而您的Route
类的布尔字段命名不一致。
一个名为 isApproved
的字段,但您的 setter 名称是 setApproved
。
尝试:
setIsApproved
将字段而不是 isApproved
重命名为 approved
请看下面的例子:
public class Route
private boolean isApproved;
private boolean isSorted;
// OR
private boolean approved;
private boolean sorted;
public Route()
public Route(boolean isApproved, boolean isSorted)
setApproved(isApproved);
setSorted(isSorted);
// OR
setIsApproved(isApproved);
setIsSorted(isSorted);
public boolean isApproved()
return isApproved;
public void setApproved(boolean approved)
isApproved = approved;
//OR
public void setIsApproved(boolean approved)
isApproved = approved;
public boolean isSorted()
return isSorted;
public void setSorted(boolean sorted)
isSorted = sorted;
// OR
public void setIsSorted(boolean sorted)
isSorted = sorted;
【讨论】:
以上是关于当应该为真时,Android Studio 改造响应返回布尔值为假的主要内容,如果未能解决你的问题,请参考以下文章