避免改造 POJO 冗余
Avoid retrofit POJO redundancy
我有一个 POJO class 用于改装。
public class AppData(){
String a;
String b;
String c;
String d;
public void setA(String a){
this.a = a;
}
public String getA(){
return a;
}
public void setB(String b){
this.b = b;
}
public String getB(){
return b;
}
public void setC(String c){
this.c = c;
}
public String getC(){
return c;
}
public void setD(String d){
this.d = d;
}
public String getD(){
return d;
}
}
我有 3 个不同的改造请求,我需要 AppData class。但是在请求 1 中,我只需要属性 a 和 b。在请求 2 中,我只需要 a、b、c,而在第三个请求中,我只需要 b、c 和 d。
在参考中,我找到了解决方案,例如添加瞬态关键字、添加注释等。但我没有得到解决方案。有没有办法对所有这 3 个请求使用相同的 POJO class?
提前致谢
AppData
对象将适用于所有 3 个请求。未从服务器响应反序列化的值将只是 null
.
你做得对,只有一个 class 就足够了,在 Call 中为所有三个请求传递你的 AppData class。
Call<AppData>
响应中返回的任何值都将被更新,例如对于第一个请求只有 a,b 将被类似地设置为其他请求各自的变量将被设置,因此在检索时您可以使用各自的 getters
所以对于第一个请求,不要尝试检索 c 和 d,否则你将得到 NullPointer 只能使用
response.getA();
response.getB();
类似地,对于其他请求,使用响应中返回的请求
我有一个 POJO class 用于改装。
public class AppData(){
String a;
String b;
String c;
String d;
public void setA(String a){
this.a = a;
}
public String getA(){
return a;
}
public void setB(String b){
this.b = b;
}
public String getB(){
return b;
}
public void setC(String c){
this.c = c;
}
public String getC(){
return c;
}
public void setD(String d){
this.d = d;
}
public String getD(){
return d;
}
}
我有 3 个不同的改造请求,我需要 AppData class。但是在请求 1 中,我只需要属性 a 和 b。在请求 2 中,我只需要 a、b、c,而在第三个请求中,我只需要 b、c 和 d。 在参考中,我找到了解决方案,例如添加瞬态关键字、添加注释等。但我没有得到解决方案。有没有办法对所有这 3 个请求使用相同的 POJO class?
提前致谢
AppData
对象将适用于所有 3 个请求。未从服务器响应反序列化的值将只是 null
.
你做得对,只有一个 class 就足够了,在 Call 中为所有三个请求传递你的 AppData class。
Call<AppData>
响应中返回的任何值都将被更新,例如对于第一个请求只有 a,b 将被类似地设置为其他请求各自的变量将被设置,因此在检索时您可以使用各自的 getters
所以对于第一个请求,不要尝试检索 c 和 d,否则你将得到 NullPointer 只能使用
response.getA();
response.getB();
类似地,对于其他请求,使用响应中返回的请求