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);
}