我这里有一个棘手的情况,我想从代码角度进行优化。有什么办法可以通过Lambda / Java8表达式来缩短以下方法?
// total amount of audiences
registry.register("metric.persons.total", new CachedGauge<Integer>(1,TimeUnit.MINUTES) {
@Override
protected Integer loadValue() {
return personService.findAll().size();
}
});
CachedGauge类看起来像这样:
public abstract class CachedGauge<T> implements Gauge<T> {
protected CachedGauge(long timeout, TimeUnit timeoutUnit) {
...
}
protected abstract T loadValue();
...
}
}
真的很高兴看看是否有办法,这里最棘手的部分是有一个默认的构造函数,并且该类已参数化。
最好的,免费的
registry.register("metric.persons.total",
CachedGauge.of(1,TimeUnit.MINUTES, ()->personService.findAll().size() )
);
我认为您可以弄清楚如何实施 CachedGauge.of(long, TimeUnit, Supplier<T>)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句