スーパークラスの抽象メソッドの実装を作成しました。メソッド内のコードは常に実行されるか、コードが決して変更されないことを知っている何らかのキャッシュがありますか?メソッド内のコードは常に実行されますか?
私のコードにパフォーマンスの問題があるかどうかを知りたいのですが。メンバー変数としてマップを作成し、それをメソッドに戻す方が良いでしょうか?
@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;
}
あなたが何を求めているのかよく分かりません。サブクラスがコードを上書きしないようにするには、関数を 'final'として宣言する必要があります。 – daniu
私は質問 – user489872
を更新しましたあなたのメソッドが最終的な場合のみ、コンパイラは呼び出しメソッドのコンパイルされたコードと直接インラインでサブルーチンの最終メソッドのバイトコードをコピーできます。したがって、メソッドコードのコンパイルの頭痛を何度も取り除きます。 –