如何抑制方法引用的 rawType?
How can I suppress rawType of 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()
吗?
改变
.map(Enum::name)
到
.map(E::name)
我有一个方法看起来像这样。
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()
吗?
改变
.map(Enum::name)
到
.map(E::name)