我有一个实用工具类,其中包含带有某些值的静态最终映射。我需要在另一个课程中访问此地图。我应该只是将地图声明为公共地图,还是应该在实用工具类中编写吸气剂,从而让地图成为私有地图?
两种方法都可行,但是最佳实践是什么?
public MyUtilityClass {
public static final Map<String, Integer> MAX_LENGTHS = ImmutableMap.of(
"title", 256,
"text", 512);
}
public MyAnotherClass {
public void someMethod() {
//accessing the map directly
MAX_LENGTHS.get("title")
}
}
Run Code Online (Sandbox Code Playgroud)
要么
public MyUtilityClass {
private static final Map<String, Integer> MAX_LENGTHS = ImmutableMap.of(
"title", 256,
"text", 512);
public static final getMaxLengthMap() {return MAX_LENGTHS;}
}
public MyAnotherClass {
public void someMethod() {
//accessing the map directly
getMaxLengthMap().get("title")
}
}
Run Code Online (Sandbox Code Playgroud)
好吧,实际上键是枚举值。就像是 :
private static final Map<String, Integer> MAX_LENGTHS = ImmutableMap.of(
MyEnumClass.TITLE, 256,
MyEnumClass.TEXT, 512);
Run Code Online (Sandbox Code Playgroud)
吸气剂没有添加任何东西-我只是将其公开。
有意义的是有一个直接返回值的方法:
public MyUtilityClass {
private static final Map<String, Integer> MAX_LENGTHS = ImmutableMap.of(
"title", 256,
"text", 512);
public static final getMaxLength(String item) {return MAX_LENGTHS.get(item);}
}
public MyAnotherClass {
public void someMethod() {
//accessing the map directly
getMaxLength("title");
}
}
Run Code Online (Sandbox Code Playgroud)
这也使您以后可以轻松修改基础实现。例如,您可以为不在地图等中的项目返回默认值。
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |