我正在编写一个客户端(android)/服务器(java)应用程序。服务器为客户端发出的每个请求返回真或“假和错误代码”。我将每个错误消息(字符串)添加到客户端的 strings.xml 中。
这就是我保留错误代码的方式;
public class ErrorCodes {
public static final int WRONG_USERNAME = 1;
public static final int WRONG_PASSWORD = 2;
public static final int WRONG_EMAIL= 3;
...
}
问题是,每次服务器发送错误代码时,我都必须(大致)那样处理它;
int code = conn.receive();
if(code == ErrorCodes.WRONG_USERNAME)
print(getResources().getString(R.string.WRONG_USERNAME_ERROR));
else if(code == ErrorCodes.WRONG_PASSWORD)
print(getResources().getString(R.string.WRONG_PASSWORD_ERROR));
...
在我看来,有两种方法可以简化这个过程,但都不优雅。
方法 1:手动使 ErrorCodes 值等于 R.string 值。同样使用这种方法,我也不需要在客户端保留 ErrorCodes 类。
问题:每次添加新的错误消息时,我都必须更新 ErrorCodes 和 strings.xml。
方法 2:在服务器中使用生成的 R.java 文件,无需更新任何内容。这是我能想到的最好的。
问题: R.java 会有很多不必要的东西。我必须在服务器端使用它:R.string.xyz
. 如果服务器没有用 java 编码,那么整个方法是没用的。
如果我使用其中之一,我可以在客户端执行此操作;
int code = conn.receive();
print(getResources().getString(code));
我想有一个更好的方法我想不出。因为这两种方式听起来都很痛苦。如何处理这种情况?