gpt4 book ai didi

java - 方法链接导致未经检查的调用警告

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

我有以下接口(interface),它由以下类实现。对于此类,我希望能够使用方法链接,这就是为什么我在 addFilter() 方法末尾添加了“return this”:

public interface IFilteredDataService<B extends Bean> extends IDataService<B>
{
FilteredDataService applyFilter(Predicate<B> filter);
}

public class FilteredDataService<B extends Bean> implements IFilteredDataService<B>
{
@Override
public FilteredDataService addFilter(Predicate<B> filter)
{
filters.add(filter);
return this;
}
}

当我按以下方式使用 addFilter() 方法时,一切都很好:

someInstance.addFilter(foo);
someInstance.addFilter(bar);

当我使用这样的方法链接时:

someInstance.addFilter(foo).addFilter(bar);

它仍然工作正常,但我收到以下警告:

Unchecked call to 'addFilter(Predicate<B>)' as a member of raw type 'FilteredDataService'.

我无法弄清楚为什么会发生这种情况以及如何删除它。任何帮助将不胜感激。

最佳答案

您在返回值中缺少通用信息,返回原始(非通用)FilteredDataService .

使用public FilteredDataService<B> addFilter(Predicate<B> filter)保留泛型。

关于java - 方法链接导致未经检查的调用警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37613065/

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