public class ResultSet2 implements Pageable

  protected java.sql.ResultSet rs=null; 
  public ResultSet2(java.sql.ResultSet rs) throws java.sql.SQLException 
 { 
 if(rs==null) throw new SQLException("given ResultSet is NULL","user"); 
 rs.last(); 
 rowsCount=rs.getRow(); 
 rs.beforeFirst(); 
 this.rs=rs; 
 }   public Printable getPrintable(int i)
   {
   Printable p;
   return p;
   }
----------------------------
  报错:variable p might not have been initialized.........
在上面一段程序中的方法 getPrintable(int i)是从Pageable接口继承来的方法,而且其返回类型是Printable实例,  但是我不知道怎么才能返回Printable实例,向大家求助,Printable是一个抽象的借口,不能实例化,我真不知道该怎么办了,,大家出出注意吧~~

解决方案 »

  1.   

    既然Printable是一个抽象的接口,那么应该有相应的具体实现。假设有一个具体的实现的类叫做PrintableImpl1,那么你可以写成
    public Printable getPrintable(int i)
       {
       Printable p = new PrintableImpl1();
       return p;
       }
      

  2.   

    返回Printable的一个实现类的实例
      

  3.   

    p=null
    或  Printable p = new PrintableImpl();
      

  4.   

    返回继承Printable的非抽象类的实例,而不能直接返回Printable类的实例,实际上根本不可能生成Printable的实例。
    即必须有非抽象类或者接口的实现
    (Printable为抽象类时):
    public class  PrintableImpl extends Printable
    {
      ...
    }
    或(Printable为接口时):
    public class  PrintableImpl implements Printable
    {
      ...
    }
    才能
    public Printable getPrintable(int i)
    {
       PrintableImpl p = new PrintableImpl();
       ...
       return p;
    }