我有这个代码,最终目标是对多个数组进行排序。 当我尝试在我的颜色比较器上访问“.color”时出现的问题。
我的构造函数:
import java.util.*;
public class ColorClothes {
public ColorClothes() // <------ method
{
}
public Clothes[] Initialize(Clothes[] item) {
Clothes firstry[] = new Clothes[4];
System.out.println("Unsorted");
for (int i = 0; i < item.length; i++) {
System.out.println(item[i].record + " " + item[i].color + " " + item[i].clothes);
}
System.out.println("\nSorted By Color\n");
Arrays.sort(item, new ColorComparator());
for (int i = 0; i < item.length; i++) {
System.out.println(item[i].record + " " + item[i].color + " " + item[i].clothes);
}
return item;
}
public class Clothes {
public int record;
public String color;
public String clothes;
}
}
我的ColorComparator:
import java.util.Comparator;
class ColorComparator implements Comparator
{
public int compare(Object str1, Object str2)
{
String str1Color = ((ColorClothes)str1).color;
String str2Color = ((ColorClothes)str2).color;
return str1Color.compareTo(str2Color);
}
}
无法解决我在ColorComparator上发生的“颜色”问题。我做错了什么?
答案 0 :(得分:0)
您的颜色属性位于班级Clothes
中,但您要投放到ColorClothes
那里((ColorClothes)str1).color
尝试:
((Clothes)str1).color
ps:类中的public属性并不是面向对象的编程
答案 1 :(得分:0)
布料没有得到解决。 试试这个:
String str1Color = ((ColorClothes.Clothes)str1).color;
String str2Color = ((ColorClothes.Clothes)str2).color;