我想对childRequirementGroupControllers进行排序,这是一个RequirementGroupController的列表,但它不允许我这样做。从语法上讲,我做错了什么?
private List<RequirementGroupController> childRequirementGroupControllers = new ArrayList<RequirementGroupController>();
@Override
public void requirementAdded(Requirement requirement)
{
Collections.sort(childRequirementGroupControllers, (RequirementGroupController a1,
RequirementGroupController a2) -> a1.getRequirementGroup.getName() - a2.getRequirementGroup.getName());
}
Inside RequirementGroup Controller我有:
public class RequirementGroupController extends BaseController
{
public Requirement getRequirementGroup()
{
return requirementGroup;
}
}
其中包含Requirement类,我最后想按Requirement.getName()排序。
答案 0 :(得分:2)
您需要使用String#compareTo
按名称对ArrayList中的对象进行排序。
http_req.open('POST', url, true);
请注意,在使用lambda表达式时,我没有明确指定参数类型,因为这是从上下文中推断出来的。
答案 1 :(得分:1)
您无法从另一个中减去String
。使用Java 8执行此操作的正确方法如下:
Collections.sort(childRequirementGroupControllers, Comparator.comparing(c -> c.getRequirementGroup.getName()));