我创建了一个函数
publicvoid someFunction(T object) { object.someMethod(); }
我有两个类具有相同的someMethod()函数定义.我必须通过传递参数来调用函数,这两个类的对象取决于提供的输入.
由于T
没有类型边界,编译器无法知道该参数是否会被具有someMethod
方法的类替换.
您可以添加类型绑定:
publicvoid someFunction(T object) { object.someMethod(); }
HasSomeMethod
包含该someMethod
方法的接口在哪里,以及someMethod
实现该接口的两个类.(如果HasSomeMethod
是你的两个类的超类,它也会工作,它包含someMethod
方法(抽象或不抽象).
编辑:
包装PreparedStatement的示例:
public class MyStatement implements HasSomeMethod { PreparedStatement stmt; public MyStatement (PreparedStatement stmt) { this.stmt = stmt; } public void someMethod () { stmt.someMethod (); } }
现在如果你有一个PreparedStatement
实例,你可以写:
PreparedStatement ps = ... MyStatement my = new MyStatement(ps);
并传递my
给您的someFunction
方法.