【问题标题】:Get code from overriden method in anonymous declaration从匿名声明中的重写方法获取代码
【发布时间】:2014-06-17 22:05:29
【问题描述】:

有没有办法在匿名声明抽象类的新实例时自动生成代码,提前谢谢。

这是一个例子:

我的抽象类:

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)
    {
        super.queryResult(rs);
    }
});



我想要发生的事情:

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

【问题讨论】:

  • 仅使用 Java 是不可能的。如果有办法让这个工作,它会在你的 IDE 中,所以我建议你编辑它。
  • 您可以将“任意”放入抽象方法中。所以匿名实现只需要实现该方法而不覆盖queryResult。
  • 该死,我认为还有其他方法可以做到这一点
  • @DevBlanked 我明白你的意思,但这不是我想要的:/

标签: java overriding anonymous-methods


【解决方案1】:

Java 语言不支持自动生成。

相反,自动生成是/将由您的 IDE 等工具实现。所以你应该做的是看看你的IDE自动生成代码的机制。这些将取决于您使用的 IDE。

例如,在 Eclipse 中,您可以定义自定义代码模板来做这种事情。

【讨论】:

  • 感谢您的回答@StephenC​​pan>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-16
  • 1970-01-01
  • 2019-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-13
相关资源
最近更新 更多