我正在编写一个用于向我们的服务中添加指标的函数,并且我希望使其通用,以便可以用于不同类型的指标。我不想进行任何怪异的转换,所以我想到了使该函数具有通用性:
set_directory_properties()
但是,由于“不兼容的类型”,它不起作用,我觉得这很奇怪。
它声明它需要public <T extends Metric> T addMetric(String key,
Function<MetricRegistry, T> metricProducer) {
MetricRegistry registry = SharedMetricRegistries.tryGetDefault();
Metric m = metricProducer.apply(registry);
registry.register(key, m);
return m;
}
,但是在返回时找到T
,但是根据类型参数,Metric
是否还没有定义为T
?
答案 0 :(得分:2)
更改
<td class="comment-text">([^<]+)<\/td>
收件人
public <T extends Metric> T addMetric(String key,
Function<MetricRegistry, T> metricProducer)
或更改
public <T extends Metric> Metric addMetric(String key,Function<MetricRegistry, T> metricProducer)
收件人
Metric m = metricProducer.apply(registry);
两者都可以。