List<Question> questions = new ArrayList<Question>();
questions.addAll(getAllQuestions()); //returns a set of Questions
Collections.sort(questions, new BeanComparator("questionId")); //org.apache.commons.beanutils.BeanComparator

在Java 1.5下,除了'new BeanComparator(“questionId”)'会生成未经检查的警告之外,上述方法都可以正常工作。我不喜欢警告。有没有一种方法可以为BeanComparator提供类型,还是必须使用@SuppressWarnings("unchecked")

最佳答案

选项有:

  • 更改BeanComparator以实现Comparator<Question>。这不是一个真正的选择,因为它是一个众所周知的外部库类。人们不会让你这样做。
  • 如上所述,进行 fork 并修改BeanComparator,为其提供不同的FQN。
  • 用实现BeanComparator的类包装现有的Comparator<Question>
  • questions的类型更改为List<?>
  • 添加禁止警告注释。
  • 关于Java Collections.sort-帮我删除未经检查的警告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1822836/

    10-12 02:20