我在全局
中声明了一个最终变量 public static final String USERTYPE="customer"
然后我将此变量用作
@POST
@Headers({
"Content-Type: application/json;charset=utf-8",
"Accept: application/json;charset=utf-8",
"Cache-Control: max-age=640000",
"user-type: " + APIService.STRING
})
Call<ReturnPojo> addpost(@Url String s, @Body Add body);
稍后在我的程序中,我需要更改
USERTYPE="guest"
我试试
1.USERTYPE.replace("customer","guest");
2.String user="customer"
USERTYPE=user;
我怎样才能做到这一点?或者如何在java中更改最终变量?
答案 0 :(得分:1)
你不能。您已将USERTYPE声明为final,因此您唯一的选择是使用不同的String。
答案 1 :(得分:0)
在运行时更改标头(Retrofit API)
我们无法更改最终变量,因此我们无法以编程方式更改用户类型。通过复制代码不是很好的做法。但我们可以通过这个来完成,
@POST
Call<ReturnPojo> addpost(@Url String s,
@Body Add body,
@Header("user-type") String user_type,
@Header("Content-Type") String content_type,
@Header("Accept") String accept,
@Header("Cache-Control") String cache_controller);
最后,虽然我们调用API只是将数据作为参数传递。