在其他java文件中声明多个字符串
我正试图声明一个消息协议,我想使用它通过UDP交换数据。因此,我想在另一个文件中声明一组字符串常量,以便在构建数据包时在我的主要活动中引用它们。我知道这是不对的,因为我有错误,但这是我想做的在其他java文件中声明多个字符串,java,android,string,Java,Android,String,我正试图声明一个消息协议,我想使用它通过UDP交换数据。因此,我想在另一个文件中声明一组字符串常量,以便在构建数据包时在我的主要活动中引用它们。我知道这是不对的,因为我有错误,但这是我想做的 public final class PACKET { // Packet Protocol Version public final void REV () { final String R_1_00 = "1.00
public final class PACKET
{
// Packet Protocol Version
public final void REV ()
{
final String R_1_00 = "1.00";
final String R_1_01 = "1.01";
}
public final void CMD ()
{
final String STAT = "STAT";
final String STOP = "STOP";
final String WAIT = "WAIT";
}
}
这样,当我在我的主要活动中创建一个包时,我可以使用
packet.CMD.WAIT
,或者类似的东西。有没有合适的方法?谢谢就我个人而言,我会为此使用枚举
public final class Packet {
// Packet Protocol Version
public static enum REV {
R_1_00("1.00"),
R_1_01("1.01");
private final String name;
private REV(String name){
this.name = name;
}
@Override
public String toString(){
return this.name;
}
}
public static enum CMD {
STAT, STOP, WAIT;
}
}
您可以这样做:
public final class PACKET
{
// Packet Protocol Version
public static class REV {
public final String R_1_00 = "1.00";
public final String R_1_01 = "1.01";
}
public static class CMD {
public final String STAT = "STAT";
public final String STOP = "STOP";
public final String WAIT = "WAIT";
}
}
这是一种方法。将变量公开
,这样您就可以像PACKET.R\u 1\u 00那样直接访问。您也可以尝试枚举有你想要的答案。有什么理由不使用android字符串资源文件来解决这个问题吗?或者这只是一种偏好?我认为根据上述问题的答案和我迄今为止看到的代码,公共类最著名的是带有最终字符串。通常资源文件包含用户可以手动更改/注入的变量,以更改应用程序代码流。所以常量不存储在资源文件中。这是我最初尝试做的。我发现我忘记了将内部类设置为静态。谢谢