2015-12-10 73 views
1

我想创建一个自定义ArgumentExtractor in Ninjaframework,其中我要创建一个类实现ninja.params.ArgumentExtractor<T>其中有方法public Class<T> getExtractedType()如何获得像`MyClass的<String> .class`在java中

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>>

+3

你可以施放它并压制警告吗? '返回(Class >)可选。(“”)。getClass();' – Mena

回答

1

只返回Optional.class。无论如何,类型参数<String>不会存在擦除。在运行时永远无法获得该部分。

相关问题