Java 如何创建通用接口方法?

Java 如何创建通用接口方法?,java,generics,interface,delegation,Java,Generics,Interface,Delegation,可以在接口中创建泛型方法吗 假设我想创建一个接口 public interface Merge { public void merge(Object host, Object other); } 然后,我希望实现类实现这一点,但定义主机和其他主机的类型 e、 g 我想这样做的原因是我可以做这样的事情 public class SomeObject { private Merge merge; private Foo foo; private Baz baz;

可以在接口中创建泛型方法吗

假设我想创建一个接口

public interface Merge {
    public void merge(Object host, Object other);
}
然后,我希望实现类实现这一点,但定义主机和其他主机的类型

e、 g

我想这样做的原因是我可以做这样的事情

public class SomeObject {
    private Merge merge;
    private Foo foo;
    private Baz baz;        

    public setMerge(Merge merge){
        this.merge = merge
    }

    public void merge(SomeObject anotherObject){
        merge.merge(this.foo, anotherObject.getBaz()); 
    }
}

我基本上希望将someObject的合并职责/逻辑委托给FooBazMerge。这样,我就可以更改合并方式的实现,而不必在每次需要进行调整时都弄脏域模型。

查看此页面以获得通用接口实现的良好示例。 这应该有助于了解如何实现一个目标

公共接口合并{
公共无效合并(A主机,B其他);
}
这就是你要找的吗?这是有效的语法。您的实现类如下所示:

public class FooBazMerge implements Merge<Foo, Baz> {
    public void merge(Foo host, Baz other){
        // merge some properties
    }
}
public类FooBazMerge实现合并{
公共无效合并(Foo主机、Baz其他){
//合并一些属性
}
}

看起来你想要的是

public interface Merge<T,S> {
    public void merge(T host, S other);
}
公共接口合并{
公共无效合并(T主机,S其他);
}

啊!你们太棒了!。这就是我做错的。当我做公共类FooBazMerge实现合并时,公共类FooBazMerge实现合并了吗..现在回想起来,我不知道我到底在想什么。谢谢你,艾什瓦娅!
public class FooBazMerge implements Merge<Foo, Baz> {
    public void merge(Foo host, Baz other){
        // merge some properties
    }
}
public interface Merge<T,S> {
    public void merge(T host, S other);
}