私はこのコードを持っていますが、最終的な目的は複数の配列をソートすることです。 私のカラーコンパレータで ".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に起こる "色" を解決できません。私は何を間違っているのですか?
'ColorClothes'はフィールド 'color'を持たず、' Clothes'クラスです。 –
'ColorClothes'のインスタンスには色がありません。代わりに 'Clothes 'のインスタンスを受け入れる必要があるように思えます。 Javaを初めて使う人は、混乱してしまうので、ネストされた型の使用を避けることを強くお勧めします。ジェネリックについて学び、 'Comparator'を実装してパブリックフィールドを避けることもお勧めします。 –
私のエラーを理解するのに役立つ問題を解決しました:) –