我为我的对象定义了4个比较器,如下所示:
public static Comparator<mObject> comp0 = new Comparator<mObject>() {
@Override
public int compare(mObject l, mObject r) {
...compare
}
};
public static Comparator<mObject> comp1 = new Comparator<mObject>() {
@Override
public int compare(mObject l, mObject r) {
...compare
}
};
public static Comparator<mObject> comp2 = new Comparator<mObject>() {
@Override
public int compare(mObject l, mObject r) {
...compare
}
};
public static Comparator<mObject> comp4 = new Comparator<mObject>() {
@Override
public int compare(mObject l, mObject r) {
...compare
}
};
Run Code Online (Sandbox Code Playgroud)
现在我想用4个比较器创建一个数组,如下所示:
public final static Comparator<mObject>[] Object_comparators = { comp0,
comp1,
comp2,
comp3};
Run Code Online (Sandbox Code Playgroud)
但是Eclipse强调{..}之间的所有内容,就像它是一个错误.为什么它,我怎么能解决它?
您无法使用参数化泛型类型创建类数组.
如果你不介意失去类型安全,你可以这样做:
Comparator[] list = new Comparator[4];
Run Code Online (Sandbox Code Playgroud)
但我首选的策略是使用List:
List<Comparator<mObject>> list = Arrays.asList(comp0, comp1, comp2, comp3);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
222 次 |
| 最近记录: |