gpt4 book ai didi

java - 奇怪的未经检查的转换警告

转载 作者:行者123 更新时间:2023-12-01 07:11:07 25 4
gpt4 key购买 nike

我在代码中使用了策略模式,这是一个简短的片段:

public interface FindingStrategy<T> {
Callable<T> setAction();
}

class FindSomething implements BindingActionStrategy {

...

@Override
public Callable<SomeObject> setAction() {
return new Callable<SomeObject>() {
@Override
public SomeObject call() throws ... {
return (SomeObject)binding.findSomething(somethingsId);
}
};
}

...

}

我在其他地方做的事情:

 Callable<SomeObject> ts = (Callable<SomeObject>) strategy.setAction();

编译器信号:

unchecked conversion warning 
required: Callable<SomeObject>
found: Callable

奇怪的是,如果我这样做,就没有警告:

Callable<SomeObject> ts = new Callable<SomeObject>() {
@Override
public SomeObject call() throws ... {
return (SomeObject)binding.findSomething(somethingsId);
}
};

我该如何解决这个问题?我尝试了很多改变,但仍然收到警告。请帮忙!

最佳答案

确保strategy变量也具有泛型类型信息。

以下情况将导致此警告:

FindingStrategy strategy;

虽然这应该没问题:

FindingStrategy<SomeObject> strategy;

那么你甚至不需要 Actor 阵容。

关于java - 奇怪的未经检查的转换警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14069955/

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