如果我想在我的界面中选择一个方法,是否可以这样做?怎么样 ?
答案 0 :(得分:7)
在Javadoc中指定实现类可以选择抛出UnsupportedOperationException。
答案 1 :(得分:6)
你不能。
但是,您可以创建第二个界面并将“可选”方法移动到该界面。
这样一个类可以选择实现一个或两个接口。
答案 2 :(得分:4)
虽然您可以执行以下操作之一,但您无法在界面中使方法成为可选方法:
使您的界面成为一个抽象类,并只实现“可选”方法
从您的类实现接口并抛出NotImplementedException(或类似的东西)
使用包含可选方法
答案 3 :(得分:4)
正如其他人所说:你做不到。但是你可以扩展接口,所以你可以构建类似的东西:
public interface InterfaceA {
void methodA();
}
public interface InterfaceB extends InterfaceA {
void methodB();
}
这样,当您可以使用这两种方法时,可以使用InterfaceA实现只有一个特定方法的类和InterfaceB。
但当然,这一切都取决于你的设计。
答案 4 :(得分:2)
不,你不能。
接口是合约,必须实施。
答案 5 :(得分:1)
不,那是不可能的。您可以在接口中实现最接近的方法是立即抛出异常。你应该重新考虑你的类型设计。
答案 6 :(得分:1)
你不能这样做8)来自What Is an Interface?
如果您的类声称实现了一个接口,那么该接口定义的所有方法必须在其成功编译之前出现在其源代码中。
也许你应该使用abstract class。
答案 7 :(得分:1)
你可以创建一个相同接口的抽象类,同一个类可以调用相同的方法但可选。
答案 8 :(得分:0)
据我所知,这是不可能的。