我写了一个帮助方法来将多个比较器组合成一个:
public static <T> Comparator<T> createComparatorChain( final Comparator<T>... comparators )
{
return new Comparator<T>()
{
public int compare( T lhs, T rhs )
{
for( Comparator<T> comparator : comparators )
{
int order = comparator.compare( lhs, rhs );
if( order != 0 )
{
return order;
}
}
return 0;
}
};
}
但是如果我使用这种方法,那么我会收到一个未经检查的警告:
Collections.<File>sort( list, ComparatorUtils.<File>createComparatorChain( BY_FILE_DIRECTORY, BY_FILE_NAME ) );
类型安全:为 varargs 参数创建一个通用的 Comparator 数组。
我的通用语法有问题吗?谁能帮我。