gpt4 book ai didi

java - 不兼容的类型 : com. rh.host.Validator 无法转换为 com.rh.host.Pool.Validator

转载 作者:行者123 更新时间:2023-12-02 02:53:22 24 4
gpt4 key购买 nike

我使用通用对象池来重用Cipher对象。

Eracom

 Pool< Cipher> pool = PoolFactory.newBoundedBlockingPool(10, new CipherPicker("DESede/CBC/NoPadding"), new CipherPickerValidator()); 

池工厂

  public static <T> Pool<T> newBoundedBlockingPool(int size, ObjectFactory<T> factory, Validator<T> validator) {
return new BoundedBlockingPool<T>(size, factory, validator);
}

public interface Pool<T>
{
T get();
void shutdown();
public boolean isValid(T t);
public void invalidate(T t);
}
}

validator

public interface Validator<T>
{

public boolean isValid(T t);

public void invalidate(T t);
}

CipherPickerValidator

public final class CipherPickerValidator implements Validator <Cipher>
{

@Override
public boolean isValid(Cipher t) {
return true;
}

@Override
public void invalidate(Cipher t) {
// return false;
}
}

我在 PoolFactory 中遇到错误。它在 validator 下显示一条红线。

错误

incompatible types: com.rh.host.Validator<T> cannot be converted to com.rh.host.Pool.Validator<T> where T is a type-variable:
T extends Object declared in method <T>newBoundedBlockingPool(int,ObjectFactory<T>,com.rh.host.Validator<T>)

我关注A Generic and Concurrent Object Pool

最佳答案

文章的一些代码似乎已被修改。

尝试分配时发生错误

com.rh.host.Validator

com.rh.host.Pool.Validator

这样写就很明显发生了什么。您有两个不相关的类型,都称为 Validator。该文章似乎在其自己的文件中呈现了嵌套类型。

因此请确保每个名称只有一个定义。并且可能会找到一篇更好的文章。

关于java - 不兼容的类型 : com. rh.host.Validator<T> 无法转换为 com.rh.host.Pool.Validator<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43454409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com