很好的一天,
我正在努力解决一个通用类型问题。但似乎Eclipse在抱怨,而没有一个有效的抱怨。
考虑以下方法
public static <FR extends FilterResult, T> List<? super WrappedFilterResult<? super T, FR>> filter(String check, Collection<T> elements, Function<? super T, String> converter, Filter<? extends FR> filter, ACComparator<? super WrappedFilterResult<? super T, ? super FR>> comparator)
{
// eclipse says 'filter' doesn't accept these arguments
return filter(check, elements, new ArrayList<>(), converter, filter, comparator);
// doing a self call will result in the same error?
// return filter(check, elements, converter, filter, comparator);
// calling without returning doesn't solve it either?
// filter(check, elements, converter, filter, comparator);
// return null;
}
// no complaints here
public static <FR extends FilterResult, T, C extends Collection<? super WrappedFilterResult<? super T, FR>>> C filter(String check, Collection<T> elements, C result, Function<? super T, String> converter, Filter<? extends FR> filter, ACComparator<? super WrappedFilterResult<? super T, ? super FR>> comparator)
{
// content
}
因为第一个方法Eclipse抱怨它不能调用
filter
方法,因为该方法
is not applicable for the arguments
. 但即使我自己打电话也会抱怨。
我想它可能是返回类型,只通过调用和返回就省略了它。
null
但遗憾的是,这也不能解决任何问题。
对于复杂的方法声明很抱歉,但是我有更多的具有相同类型/数量参数的模拟方法可以正常工作。所以我不知道为什么这行不通。
信息:
-
视窗10
-
Eclipse Oxygen.3a释放(4.7.3a)
我希望这是件小事,我看不到自动取款机,谢谢你的帮助。
提前谢谢
编辑
如果有人需要类声明
public static class FilterResult {}
public interface Filter<FR extends FilterResult> {}
public static class WrappedFilterResult<T, FR extends FilterResult> extends FilterResult {}
public interface ACComparator<FR extends FilterResult> {}
提交给Bugzilla
螺纹连杆1 AT
the eclipse bugzilla forum
螺纹连杆2 AT
the eclipse bugzilla forum