2014-05-01 47 views
0

有沒有辦法在匿名聲明一個抽象類的新實例時自動生成代碼,這要感謝提前。在匿名聲明中從overriden方法獲取代碼

這裏有一個例子:

我的抽象類:

test.executeQuery("SELECT * FROM visiteur", new MySqlQueryHelperCallback() { 
    @Override 
    protected void queryResult(ResultSet rs) 
    { 
     super.queryResult(rs); 
    } 
}); 

public abstract class MySqlQueryHelperCallback { 

    /** 
    * 
    * @param rs ResultSet for precedent sql request 
    */ 
    protected void queryResult(ResultSet rs) 
    { 
     try 
     { 
      while (rs.next()) 
      { 
       //Whatever 
      } 
     } catch (SQLException e) 
     { 
      e.printStackTrace(); 
     } 
    }; 
} 



當我匿名創建一個實例,會發生什麼
我想會發生什麼:

test.executeQuery("SELECT * FROM visiteur", new MySqlQueryHelperCallback() { 
    @Override 
    protected void queryResult(ResultSet rs) 
    { 
     try 
     { 
      while (rs.next()) 
      { 
       //Whatever 
      } 
     } catch (SQLException e) 
     { 
      e.printStackTrace(); 
     } 
    }; 
}); 
+0

這對於Java來說是不可能的。如果有一種方法可以完成這項工作,它將與您的IDE一起使用,因此我建議您在。 –

+0

中編輯它,您可以對抽象方法進行「任何」操作。所以匿名實現只需要實現該方法而不必重寫queryResult。 –

+0

該死的,我想有另一種方式可以做到這一點 –

回答

1

Java語言不支持自動生成。

確切地說,自動生成是通過諸如IDE之類的工具來實現的。所以你應該做的是看你的IDE的自動生成代碼的機制。這些將取決於您使用的IDE。

例如,在Eclipse中,您可以定義自定義代碼模板來執行此類操作。

+0

感謝您的回答@StephenC –