如何在 java 中获得类似 `MyClass<String>.class` 的内容
How to get something like `MyClass<String>.class` in java
我正在尝试创建一个自定义 ArgumentExtractor
in Ninjaframework,我必须在其中创建一个 class 来实现 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;
行,我遇到语法错误。在这种情况下,我如何正确 return 类型 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>>
只是 return Optional.class。无论如何,类型参数 <String>
都不会在擦除后继续存在。您永远无法在运行时获得该部分。
我正在尝试创建一个自定义 ArgumentExtractor
in Ninjaframework,我必须在其中创建一个 class 来实现 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;
行,我遇到语法错误。在这种情况下,我如何正确 return 类型 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>>
只是 return Optional.class。无论如何,类型参数 <String>
都不会在擦除后继续存在。您永远无法在运行时获得该部分。