在其他java文件中声明多个字符串

在其他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

我正试图声明一个消息协议,我想使用它通过UDP交换数据。因此,我想在另一个文件中声明一组字符串常量,以便在构建数据包时在我的主要活动中引用它们。我知道这是不对的,因为我有错误,但这是我想做的

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字符串资源文件来解决这个问题吗?或者这只是一种偏好?我认为根据上述问题的答案和我迄今为止看到的代码,公共类最著名的是带有最终字符串。通常资源文件包含用户可以手动更改/注入的变量,以更改应用程序代码流。所以常量不存储在资源文件中。这是我最初尝试做的。我发现我忘记了将内部类设置为静态。谢谢