我使用它包含一个方法的外部库的参数:泛型 - 在类型的方法并不适用于
public <V> List<V> getObjectsForHashCriteria(@NonNull final Class<V> clazz, @NonNull final V hashObject) {
final DynamoDBQueryExpression<V> queryExpression = new DynamoDBQueryExpression<V>().withHashKeyValues(hashObject);
return dynamoDBMapper.query(clazz, queryExpression,
dynamoDBMapperConfig);
}
我想调用上述方法。为了获得类对象,我将它传递给构造函数。事情是这样的:
MyClass(final @NonNull Class<T> clazz){
this.clazz = clazz}
中序调用getObjectsForHashCriteria(),我目前做这件事,如下图所示,但它显示编译错误:
public <T> List<T> fetchObjectsForHashCriteria(@NonNull final T hashObject){
instance.getObjectsForHashCriteria(clazz, hashObject);
}
但它显示了一个编译错误:
getObjectsForHashCriteria(Class,V)方法不适用于 的参数(Class,T)。
所以基本上我试图通过泛型类型参数作为泛型类型参数。请让我知道这是什么问题?如果这是不可能的,是否有任何解决方法?
你有两个不同的'T'仿制药,你掩盖了类级别(如果它是类级),一般用新的''对不起 –
Rogue
,我没有明白你的观点。你能否澄清一点? –
当你在你的方法中声明'列表'时,你声明了一个类型为'T'的类型见证。这个'T'(在'#fetchObjectsForHashCriteria'方法上)与你构造函数中的'Class '有着根本的区别。 –
Rogue