我正在尝试创建自定义ArgumentExtractor
in Ninjaframework,我必须在其中创建一个实现ninja.params.ArgumentExtractor<T>
的类,其中包含方法public Class<T> getExtractedType()
import java.util.Optional;
class OptionalParamExtractor implements ArgumentExtractor<Optional<String>> {
...
@Override
public Class<Optional<String>> getExtractedType() {
return Optional<String>.class; // Compiler don't let me do this.
}
}
在第return Optional<String>.class;
行,我收到语法错误。在这种情况下,如何正确返回Class<Optional<String>>
类型的对象?我试过了
@Override
public Class<Optional<String>> getExtractedType() {
return Optional.of("").getClass();
}
但是没有用,我收到了错误Type mismatch: cannot convert from Class<capture#1-of ? extends Optional> to Class<Optional<String>>
答案 0 :(得分:1)
只需返回Optional.class。无论如何,类型参数<String>
都无法在擦除中存活。你永远不能在运行时获得那部分。