如何创建通用接口方法?
问题描述:
是否可以在接口中创建通用方法?如何创建通用接口方法?
说,我想创建一个界面
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
}
}
答
看看这个页面的通用接口实现的很好的例子。 这应该有助于如何实施一个。
http://www.java2s.com/Code/Java/Language-Basics/Agenericinterfaceexample.htm
答
好像你想要的东西像...
public interface Merge<T,S> {
public void merge(T host, S other);
}
啊!你们真棒!这就是我做错了。当我做公共类FooBazMerge实现合并,公共类FooBazMerge 实现合并 ..现在我回头看,我不知道我在想什么世界。谢谢aishwarya! –
Khon