FK8*_*K82 27 java class object map literals
简而言之,如果你想在Java中编写一个例如常量的映射,例如Python和Javascript,你会把它写成文字,
T<String,String> CONSTANTS =
{
"CONSTANT_NAME_0": CONSTANT_VALUE_0 ,
"CONSTANT_NAME_1": CONSTANT_VALUE_1 ,
"CONSTANT_NAME_2": CONSTANT_VALUE_2 ,
//...
} ;
Run Code Online (Sandbox Code Playgroud)
是否有一个Class
或任何预设Object
可用于编写这样的数据结构?
xpm*_*teo 51
我喜欢这样做:
Map map = new HashMap() {{
put("foo", "bar");
put(123, 456);
}};
Run Code Online (Sandbox Code Playgroud)
double {{}}是一个实例初始化块.它们有点不寻常,但它们很有用.不需要图书馆或帮助者.
Jor*_*orn 35
不,Java没有地图文字.您最接近的是使用Google Collections的ImmutableMap:
Map<K,V> CONSTANTS = ImmutableMap.of(
NAME_1, VALUE_1,
NAME_2, VALUE_2
//etc.
);
Run Code Online (Sandbox Code Playgroud)
Bal*_*usC 15
常数?我会用枚举.
public enum Constants {
NAME_1("Value1"),
NAME_2("Value2"),
NAME_3("Value3");
private String value;
Constants(String value) {
this.value = value;
}
public String value() {
return value;
}
}
Run Code Online (Sandbox Code Playgroud)
例如,NAME_2
可以获得以下值:
String name2value = Constants.NAME_2.value();
Run Code Online (Sandbox Code Playgroud)
只给枚举一点更明智的名称,例如Settings
,Defaults
等,无论这些名称/值对实际代表.
归档时间: |
|
查看次数: |
12240 次 |
最近记录: |