import java.util.*;
import java.io.*;
public class Main
{
public static class NewString implements Comparable
{
String pole;
public NewString(String s)
{
pole=s;
}
public int compareTo(Object str)
{
String s=(String)str;
if(pole.length()==s.length()) return pole.compareTo(s);
else if(pole.length()>s.length()) return 1;
else return -1;
}
public String toString()
{
return pole;
}
}
public static void main(String[] args)throws IOException
{
StreamTokenizer st=new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)),true);
TreeSet<NewString> set=new TreeSet<NewString>();
out.println("Liczba prob: ");
st.nextToken();
for(int i=0;i<(int)st.nval;i++)
{
out.println("Podaj wyraz: ");
st.nextToken();
set.add(new NewString(st.sval));
}
for(NewString s: set)
{
out.println(s);
}
}
}
Powyższy kod wyrzuca wujątek ClassCastException przy próbie wprowadzania danych, lecz zupełnie nie wiem dlaczego mimo przeczytania opisu tego wyjątku. Czy moglibyście mi to trochę wyjaśnić? Będę bardzo wdzięczny. (Kod ma za zadanie sortowanie Stringów według długości).