Android中构造函数的问题

时间:2016-07-08 09:14:20

标签: java android

我有这个代码,最终目标是对多个数组进行排序。 当我尝试在我的颜色比较器上访问“.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上发生的“颜色”问题。我做错了什么?

2 个答案:

答案 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;