0

我有这个类,我只需要toString()内部方法的帮助来实际显示结果。它给了我一个无法使用getName()getId()在静态上下文中的错误:

public static void bubbleSort(Student[] array)
{
    for(int i=(array.length); i>0; i--)
        for(int j=1; j<(array.length-i); j++)
            if(array[j].getName().compareTo(
               array[j+1].getName())<0) {
                Student Temp = array[j];
                array[j] = array[j+1];
                array[j+1] = Temp;
            }

    String s = null;
    for (int i=0; i<array.length; i++) {
    // the error is here under the getName and getId 
        s= s+ getName()+" "+ getId() ;
    } 
    System.out.print (s);
}
4

3 回答 3

1

代替:

s= s+ getName()+" "+ getId() ;

你可能需要这样做:

s= s+ array[i].getName()+" "+ array[i].getId() ;

并在上面的评论中使用:

String s = "";
于 2012-10-20T13:11:12.083 回答
1

我认为您想打印Student您之前排序的 s 的名称和 ID。

public static void bubbleSort(Student[] array)
{
    for(int i=(array.length); i>0; i--)
    {

        for(int j=1; j<(array.length-i); j++) 
        {
             if( array[j].getName().compareTo(array[j+1].getName())<0)

            {
                Student Temp = array[j];
                array[j] = array[j+1];
                array[j+1] = Temp;
            }

        }
    }

    String s = ""; // should not be null

    for (int i = 0; i < array.length; i++)
    {
        s = s + array[i].getName()+" "+ array[i].getId(); // changed this line
        System.out.print (s); // moved this into the loop because I think this makes more sense
    }
}

方法getName()getID()属于对象Student,而不是bubbleSort()定义的类的方法。

于 2012-10-20T13:11:19.460 回答
0

您可能想要array[i].getName()andarray[i].getId()而不是getName()and getId()

于 2012-10-20T13:12:02.613 回答