【发布时间】:2014-02-20 17:33:44
【问题描述】:
我有一个应用程序列表,其中每个实体都代表一个自定义对象。
List<String> Applications = new ArrayList<String>();
我的应用程序类是这样的:
public Class Application
{
private String ApplicationName;
private int Priority
}
我需要对应用程序进行排序 w.r.t.优先。请注意,Priority 只能包含三个意志值,即 1、2 和 3 分别代表 High、Medium 和 Low。
我已经实现了 Comparator 来像这样对列表进行排序:
Collections.sort(this.Applications, new Comparator<Application>()
{
@Override
public int compare(Application App1, Application App2)
{
return App1.Priority.compareTo(App2.Priority);
}
});
但是编译器给了我这个错误:
Cannot invoke compareTo(int) on the primitive type int
【问题讨论】:
-
主要问题是
int是原始类型,而不是类,并且有NO 方法可以从原始类型调用。 LouisWasserman's answer 解释了如何解决这个问题。 -
请注意,Java 约定是变量和方法名称应以小写字母开头:
app1.priority。遵循此约定将使您的代码更容易被其他人理解。