compareTo() la méthode n'est pas primordial méthode par défaut lors de l'utilisation d'interface Comparable

Je suis en train de remplacer la valeur par défaut compareTo() la méthode en java, par l'écriture de mon propre et à l'aide de implémente comparable, cependant, il semble que java est encore à l'aide de la méthode par défaut.

Je suis en train de trier un tableau de Chaînes de caractères en fonction de la longueur que je l'obtenir à partir d'une .fichier dat, cependant, il continue à faire le tri par ordre alphabétique au lieu de cela. Je vous serais reconnaissant si quelqu'un pouvait me dire ce que je fais de mal que je ne peux pas comprendre pourquoi cela ne fonctionne pas.

Grâce

import static java.lang.System.*;
import java.util.Arrays;

public class Word implements Comparable
{
private String word;
private String[] array;

public Word()
{
    word = "";
}

public Word(String s)
{
    word = s;
}

public void setWord(String s)
{
    word = s;
}

public int compareTo(String rhs)
{
    String temp = (String)rhs;
    if(word.length() > temp.length())
        return 1;
    else if(word.length() < temp.length())
        return -1;

    return 0;
}

public void setSize(int size)
{
    array = new String[size];
}

public void add(int spot, String other)
{
    array[spot] = other;
}

public String[] sortByLength()
{
    Arrays.sort(array);
    return array;
}
public String toString()
{
    return Arrays.toString(array);
}
}

Ici est la classe qui contient la méthode main

import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import java.util.Arrays;
import static java.lang.System.*;

public class Lab18d
{
public static void main( String args[] ) throws IOException
{
    Scanner file = new Scanner(new File("lab18d.dat"));

    int size = file.nextInt();
    file.nextLine();
    Word test = new Word();
    test.setSize(size);
    String word = "";

    for(int i = 0; i < size; i++)
    {
        word = file.next();
        test.setWord(word);
        test.add(i, word);
    }
    test.sortByLength();
    System.out.println(test);
}
}

OriginalL'auteur Special K | 2012-02-04