是否可以在接口中创建通用方法?
说我想创建一个界面
public interface Merge {
public void merge(Object host, Object other);
}
然后我希望实现类实现它,但是定义主机和其他类型。
e.g。
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。这样我就可以改变它的合并方式的实现,而不必在每次需要进行调整时都使用域模型。
答案 0 :(得分:3)
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
}
}
答案 1 :(得分:3)
看起来你想要像...这样的东西。
public interface Merge<T,S> {
public void merge(T host, S other);
}
答案 2 :(得分:1)
查看此页面,了解通用接口实现的优秀示例。 这应该有助于如何实现一个。
http://www.java2s.com/Code/Java/Language-Basics/Agenericinterfaceexample.htm