JAVA - 如何在不同的类中使用Enum作为公共静态final String?

时间:2016-12-06 09:43:29

标签: java enums constants

我想将常量存储在一个类中,并且可以从不同的类中访问它。

这就是我为常量创建类的方法,“键”

public class Keys {
    public static class SQLite {  
        public static final int DB_VERSION = 8;
        public static final String DB_NAME = "my_db.sqlite";
        public static final String TABLE_NAME = "table_name";

        public enum Column {
            NAME("name"),
            PHONE("phone"),
            ADDRESS("address");

            private String value;

            Column(String value) {
                this.value = value;
            }

            public String toString() {
                return value;
            }
        }
    }


    public static class Constants {  
        public static final String CONST1 = "const1";
        public static final String CONST2 = "const2";

        public enum Random {
            ONE("one"),
            TWO("two"),
            THREE("three");

            private String value;

            Random(String value) {
                this.value = value;
            }

            public String toString() {
                return value;
            }
        }
    }
}

现在,在名为“MyActivity”的类中,

我知道我可以使用这样的枚举:

String name = Keys.SQLite.Column.NAME.toString();

但有没有办法缩短前缀?

以便我可以更简单的方式访问它:

Column.Name.toString();

而不是:

Keys.SQLite.Column.Name.toString();

3 个答案:

答案 0 :(得分:1)

您可以在MyActivity类中import枚举:

import Keys.SQLite.Column;

然后使用

String name = Column.NAME.toString();

答案 1 :(得分:1)

直接导入班级中的枚举

import Keys.SQLite.Column;

然后键入要获取的枚举名称和枚举:

Column.NAME;

答案 2 :(得分:1)

正如Azodious已经说过的那样,你可以通过

导入它
import static Keys.SQLite.Column.NAME;

如果这不能满足您的需求,您还可以使用静态导入,例如:

String name = NAME.toString();

这样你就可以使用

    label                                      content
    great, amazing                            our company is bla bla
                                              bla bla bla......

    amazing, horrible,interesting              our company is bla bla
                                              bla bla bla......

    boring                                    our company is bla bla
                                              bla bla bla......