Java-调用super.toString()格式化结果集

Java-调用super.toString()格式化结果集,java,resultset,tostring,Java,Resultset,Tostring,查询数据库时,我可以毫无问题地打印结果集。我需要使用super.toString方法,该方法在我的超类中被重写,并提供我希望结果集显示的格式 res = stmt.executeQuery("Select * from registrar.student "); System.out.println("\nAll records in your table:"); while (res.next()) { String data = ""; data +

查询数据库时,我可以毫无问题地打印结果集。我需要使用super.toString方法,该方法在我的超类中被重写,并提供我希望结果集显示的格式

 res = stmt.executeQuery("Select * from registrar.student ");  
 System.out.println("\nAll records in your table:");  
 while (res.next()) {  
     String data = "";  
     data += res.getString("studentID") + "  "  
          + res.getString("firstName") + " "  
          + res.getString("lastName") + " "  
          + res.getDouble("GPA")+ " "  
          + res.getString("status") + " "  
          + res.getString("mentor") +" "  
          + res.getString("level")+"\n";  
     System.out.println(data); 

如何添加
super.toString()
以格式化数据显示?

您不能。超级用户对子类中的数据一无所知,除非正在格式化的数据位于父类中,并在子类中设置

但是,由于您的代码显示一个字符串对象是作为局部变量创建的,因此您的超级用户不可能知道关于这个变量的任何信息


toString的目的是输出该对象的表示,这通常意味着该对象的属性。

您始终可以从类中调用super.foo()。这将调用超级类方法。显然,如果您在类之外执行foo()的实现,您无法选择调用它。在这种情况下,您总是调用“最后”重写版本。这叫做多态性。

我已经试过了

public static void printRecord(ResultSet rs)
    {
        try {
            ResultSetMetaData rsmd=rs.getMetaData();

            int totalColumns=rsmd.getColumnCount();

            StringBuilder sb=new StringBuilder();
            String columnName=null;

            sb.append("[ ");
            for(int i=1;i<=totalColumns;i++)
            {
                columnName=rsmd.getColumnName(i);

                sb.append(columnName);
                sb.append(":");
                sb.append(rs.getString(i));

                if(i!=(totalColumns-1))
                {
                    sb.append(" , ");
                }
            }
            sb.append(" ]");

            System.out.println(sb.toString());
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    }
公共静态无效打印记录(结果集rs)
{
试一试{
ResultSetMetaData rsmd=rs.getMetaData();
int totalColumns=rsmd.getColumnCount();
StringBuilder sb=新的StringBuilder();
字符串columnName=null;
某人加上(“[”);

for(int i=1;Ithank for the responses.你们都说得太离谱了。我的变量是在超类中定义的,由子类继承的,除了数据。