如何在java中获得类似`MyClass<String>.class`的东西
Posted
技术标签:
【中文标题】如何在java中获得类似`MyClass<String>.class`的东西【英文标题】:How to get something like `MyClass<String>.class` in java 【发布时间】:2016-03-16 04:43:46 【问题描述】:我正在尝试创建一个自定义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>>
【问题讨论】:
你可以直接施放它并抑制警告吗?return (Class<Optional<String>>) Optional.of("").getClass();
【参考方案1】:
只需返回 Optional.class。类型参数<String>
无论如何都不会在擦除后继续存在。您永远无法在运行时获得该部分。
【讨论】:
以上是关于如何在java中获得类似`MyClass<String>.class`的东西的主要内容,如果未能解决你的问题,请参考以下文章
用字典 <String,MyClass> 在 C# 中填充 WPF DataGrid
如何通过读取“[MyClass class]”的行来修复“Interface Builder 文件中的未知类 <MyClass>”错误?