次の 2 つのようなエントリがたくさんあります。
if (update) {
if (activity.getName() == null) {
logger.debug(" Setting name on " + id);
} else
if (!activity.getName().equals(name)) {
logger.debug(" Updating name on " + id);
}
}
// if (!update) not logged on purpose
activity.setName(name);
if (update) {
if (activity.getPlannedDuration() == null) {
logger.debug(" Setting plannedDuration on " + id);
} else
if (!activity.getPlannedDuration().equals(duration)) {
logger.debug(" Updating plannedDuration on " + id);
}
}
// if (!update) not logged on purpose
activity.setPlannedDuration(duration);
コードを読みやすくするために、次のようなものに置き換えたいと思います。
updateField(update, name, "name", activity.getName, activity.setName);
updateField(update, duration, "plannedDuration", activity.getPlannedDuration, activity.setPlannedDuration);
これはよくある質問であることは承知しています。私は宿題をしました。メソッドを Callable インターフェイスにラップするのが最も簡単な解決策のようです。しかし、その解決策は、私の現在のコードよりもさらに混乱します (読みやすくするためにこれを行っていることを思い出してください)。
それで、Javaで私の問題に対するエレガントな解決策はありますか?