我已经创建了超类的抽象方法的实现。方法中的代码是否总是被执行,或者是否存在某种知道代码永远不会改变的缓存?
我想知道我的代码是否存在性能问题。将地图创建为成员变量然后在方法中返回它是否更好?
@Override
protected Map<String, Function<Information, String>> getDefinitionMap() {
final Map<String, Function<Information, String>> map = new LinkedHashMap<>();
map.put("Name", t -> t.getName());
map.put("ID", t -> t.getId());
return map;
}
答案 0 :(得分:4)
每次调用方法getDefinitionMap()
时,都会创建一个新的LinkedHashMap
实例。没有&#34;隐式缓存&#34;。
你可以避免这种情况,如果你创建一次地图,将它存储在一个成员变量中并返回它。您可能希望使其不可修改,以便呼叫者无法更改。 (见java.util.Collections.unmodifiableMap
)