[英]How to get something like `MyClass<String>.class` in java
我試圖在Ninjaframework中創建一個自定義ArgumentExtractor
,在其中我必須創建一個實現ninja.params.ArgumentExtractor<T>
的類, 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>>
Type mismatch: cannot convert from Class<capture#1-of ? extends Optional> to Class<Optional<String>>
只需返回Optional.class。 類型參數<String>
無論如何都無法刪除。 您永遠都無法在運行時得到那部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.