如何创建通用接口方法?

问题描述:

是否可以在接口中创建通用方法?如何创建通用接口方法?

说,我想创建一个界面

public interface Merge { 
    public void merge(Object host, Object other); 
} 

那么我想实现的类来实现这一点,但定义主机和其他的类型。

例如

public class FooBazMerge implements Merge { 
    public void merge(Foo host, Baz other){ 
     // merge some properties 
    } 
} 

为什么我想这样做的原因是,我可以做这样的事情

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合并责任/逻辑。这样我就可以改变它的合并方式,而不必在每次需要进行调整的时候都去掉域模型。

public interface Merge<A,B> { 
    public void merge(A host, B other); 
} 

这是你在找什么?这是有效的语法。您的实现类会是什么样子:

public class FooBazMerge implements Merge<Foo, Baz> { 
    public void merge(Foo host, Baz other){ 
     // merge some properties 
    } 
} 
+0

啊!你们真棒!这就是我做错了。当我做公共类FooBazMerge实现合并,公共类FooBazMerge 实现合并 ..现在我回头看,我不知道我在想什么世界。谢谢aishwarya! – Khon

看看这个页面的通用接口实现的很好的例子。 这应该有助于如何实施一个。

http://www.java2s.com/Code/Java/Language-Basics/Agenericinterfaceexample.htm

好像你想要的东西像...

public interface Merge<T,S> { 
    public void merge(T host, S other); 
}