私はname
財産およびそれらのすべてのために大体このようなものですbyName
方法にはいくつかの列挙型があります。byName
方法が異なる列挙型の間で複製されているので多くの列挙型
public static Condition byName(String name) throws NotFoundException {
for (Condition c : values()) {
if (c.name.equals(name)) {
return c;
}
}
throw new NotFoundException("Condition with name [" + name + "] not found");
}
を、私はそれを一箇所に分解し、重複したコードを避けたいと思います。
しかし:
- 列挙型は、デフォルトの方法で
- Java8インタフェースは
values()
方法
にアクセスすることができない私は、これはおそらく、AspectJので行うことができる知っているが、私は」抽象クラスを拡張することはできませんdではなく、Spring AOP(これはSpringプロジェクトであるため手元にあります)では、既存のメソッドにバインドするだけで、新しいメソッドを追加することはできません。
一般的な方法を列挙型に追加する実行可能なソリューションはありますか?
あなたが別のクラスに、これらの列挙型をラップすることはできません(1つの列挙型あたりクラス)...そして、このクラスは、この 'byName'メソッドで抽象クラスを拡張しますか? –