如何抑制方法引用的rawType?

时间:2018-01-31 03:33:22

标签: java lambda method-reference

我的方法看起来像这样。

public <E extends Enum<E> & Some> void setOther(final E some) {
    setOther(ofNullable(some).map(e -> e.name()).orElse(null);
}

现在IntelliJ建议使用e -> e.name()部分的方法参考。

我改变了它。

public <E extends Enum<E> & Some> void setOther(final E some) {
    setOther(ofNullable(some).map(Enum::name).orElse(null);
}

现在编译器抱怨它。

... ....java:nnn: warning: [rawtypes] found raw type: Enum
        setOther(ofNullable(some).map(Enum::name).orElse(null));
                                      ^

@SuppressWarnings({"uncheked"})不起作用。

我该怎样消除它?我应该坚持e -> e.name()吗?

1 个答案:

答案 0 :(得分:1)

更改

.map(Enum::name)

.map(E::name)