由于T没有类型边界,编译器无法知道该参数是否会被具有someMethod方法的类替换.
您可以添加类型绑定:
public <T extends HasSomeMethod> void someFunction(T object) {
object.someMethod();
}
Run Code Online (Sandbox Code Playgroud)
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 ();
}
}
Run Code Online (Sandbox Code Playgroud)
现在如果你有一个PreparedStatement实例,你可以写:
PreparedStatement ps = ...
MyStatement my = new MyStatement(ps);
Run Code Online (Sandbox Code Playgroud)
并传递my给您的someFunction方法.
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |