我一直在看其他问题,但我仍然不明白这里发生了什么。 我有这个类:
package com.test.service.database.converter;
import com.test.service.database.dao.DocumentType;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
import java.util.Optional;
@Component
public class DocumentStringConverter implements Converter<DocumentType, String> {
@Override
public String convert(DocumentType documentType) {
return Optional.ofNullable(documentType).map(DocumentType::type).orElse(null);
}
}
实现了Spring接口的内容如下:
package org.springframework.core.convert.converter;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
@FunctionalInterface
public interface Converter<S, T> {
@Nullable
T convert(S source);
default <U> Converter<S, U> andThen(Converter<? super T, ? extends U> after) {
Assert.notNull(after, "After Converter must not be null");
return (S s) -> {
T initialResult = convert(s);
return (initialResult != null ? after.convert(initialResult) : null);
};
}
}
IntelliJ在参数上发出警告
public String convert(DocumentType documentType) {
该警告表示未注释的参数覆盖了@NonNullApi参数
documentType - 要转换的源对象,必须是S的一个实例(永远不为null)
为什么会出现这种情况?这意味着什么,因为Converter带有@Nullable
注释?我该如何解决此警告?