我想制作一个声明方法Mergeable的接口merge()。实现此目的的类将必须实现如下方法:

SomeObject.java

public class SomeObject implements Mergeable

    @Override
    public SomeObject merge(SomeObject other) {...}


请参见将return和parameter类型设置为实现类。有没有一种方法可以强制执行此操作,我将如何在接口中设置方法签名?

最佳答案

查看Comparable界面作为示例。您可能必须写类似

interface Mergeable<T> {
   T merge(T other);
}


...然后在您想接受Mergeable的任何时候写

<T extends Mergeable<T>> void somethingWithMergeables(T merge1) {
   ...
}

10-01 18:55