Java 番石榴属植物

Java 番石榴属植物,java,generics,collections,guava,Java,Generics,Collections,Guava,我有相当大的问题,创建通用方法订购。现在我有了这个功能: public <T> T orderAscending(Function<?, ? extends Comparable> function, Iterable<? extends LinkedList<?>> sortingList) { return Ordering.natural().onResultOf(function).sortedCopy(sortingList);

我有相当大的问题,创建通用方法订购。现在我有了这个功能:

public <T> T orderAscending(Function<?, ? extends Comparable> function, Iterable<? extends LinkedList<?>> sortingList) {
    return Ordering.natural().onResultOf(function).sortedCopy(sortingList);
}
public T order升序(函数>排序列表){
返回Ordering.natural().onResultOf(函数).sortedCopy(排序列表);
}
此函数的第一个参数是这样创建的:

public static Function<ParkingWebApiDTO, Date> getSortActiveParkingsByStartDate() {
        Function<ParkingWebApiDTO, Date> getStartDateFunction = new Function<ParkingWebApiDTO, Date>() {
            @Override
            public Date apply(ParkingWebApiDTO parkingWebApiDTO) {
                return parkingWebApiDTO.getStartDate();
            }
        };
        return getStartDateFunction;
    }
公共静态函数getSortActiveParkingByStartDate(){
函数getStartDateFunction=新函数(){
@凌驾
公开日期申请(ParkingWebApiDTO ParkingWebApiDTO){
返回parkingWebApiDTO.getStartDate();
}
};
返回getStartDate函数;
}
第二个是LinkedList,其中包含一些自定义对象(
List test=new LinkedList()


请有人帮助我修复此通用方法
ordersupsing
。非常感谢您的帮助。

我想您是想从DTO的
Iterable
创建
列表(按开始日期排序)(我假设您不想要Iterable的DTO列表)

假设您的DTO如下所示:

interface ParkingWebApiDTO { // could be simple class, etc.
  Date getStartDate();
  // ...and more methods here
}
List<? extends ParkingWebApiDTO> result = orderAscending(function, iterable);
您有输入列表:

LinkedList<? extends ParkingWebApiDTO> iterable = Lists.newLinkedList();
如果希望有“通用”方法,则需要将from和to类型声明为泛型类型


另一件事是如果你真的需要有这样的通用名称,因为使用
Ordering.natural().onResultOf(function).sortedCopy(list)
是非常好的,而使用
orderAscending
则是一种过火的行为(你会得到很多类似这样的方法).

您忘了提到实际问题是什么……编译问题:)然后您可以与我们分享编译错误吗?这可能是泛型类型推断的另一个问题。或者可能是
sortedCopy()
(来自
Iterable
输入的
列表
)的结果作为
T
返回……太棒了!多谢各位。这就是我要找的。
List<? extends ParkingWebApiDTO> result = orderAscending(function, iterable);
public static <X, T extends Comparable<T>> List<? extends X> orderAscending(
    Function<X, T> function, Iterable<? extends X> sortingList) {
  return Ordering.natural().onResultOf(function).sortedCopy(sortingList);
}