我刚刚将一些项目从Java 6升级到Java 8,一个类正在实现Connection接口。现在Connection
界面似乎有更多方法,但我不想实现所有缺失的方法,例如:Connection.getSchema()
。 Connection.getConnectionTimeOut()
等等。
我应该如何解决这个问题,因为我不想让我的课程抽象化,或者我应该实现所有缺失的方法?
答案 0 :(得分:2)
如果Connection接口没有为给定的新Methodes实现Defaultmethods,则必须实现它们。如果它们未在您的Applicationcontext中使用,您可能只能将它们实现为空。虽然这将是您的问题的快速解决方案,但我不建议这样做,因为可能迟到其他一些类将不得不使用这些函数。
答案 1 :(得分:1)
你没有别的选择,只能实施它们。
但是,如果您的自定义连接实现不是通用的,那么可以摆脱这样的虚拟实现:
public String getSchema() {
throw new UnsupportedOperationException("Connection::getSchema");
}
如果您发现确实需要其中一些方法,则可以返回并正确实施。
使类抽象无济于事。这只是将问题放到子类中...... 将需要实现这些方法。