Java 泛型方法调用混淆

Java 泛型方法调用混淆,java,generics,dynamic,Java,Generics,Dynamic,我创建了一个函数 public <T> void someFunction(T object) { object.someMethod(); } public函数(T对象){ object.someMethod(); } 我有两个类,它们具有相同的函数定义。我必须通过传递参数来调用函数,这两个类的对象取决于提供的输入。由于T没有类型界限,编译器无法知道该参数是否会被具有someMethod方法的类所替换 您可以添加类型绑定: public <T extends Ha

我创建了一个函数

public <T> void someFunction(T object) {
    object.someMethod();
}
public函数(T对象){
object.someMethod();
}

我有两个类,它们具有相同的函数定义。我必须通过传递参数来调用函数,这两个类的对象取决于提供的输入。

由于
T
没有类型界限,编译器无法知道该参数是否会被具有
someMethod
方法的类所替换

您可以添加类型绑定:

public <T extends HasSomeMethod> void someFunction(T object) {
    object.someMethod();
}
现在,如果您有一个
PreparedStatement
实例,您可以编写:

PreparedStatement ps = ...
MyStatement my = new MyStatement(ps);

并将
my
传递给您的
someFunction
方法。

由于
T
没有类型界限,编译器无法知道该参数是否会被具有
someMethod
方法的类替换

您可以添加类型绑定:

public <T extends HasSomeMethod> void someFunction(T object) {
    object.someMethod();
}
现在,如果您有一个
PreparedStatement
实例,您可以编写:

PreparedStatement ps = ...
MyStatement my = new MyStatement(ps);

并将
my
传递给您的
someFunction
方法。

一个对象属于java库类,另一个属于用户定义类。所以第一个类是一个编译代码。那么,我们如何为这两者实现相同的接口呢classes@AkhilSudhakaran也许您可以用第二个实现接口的用户定义类包装库类。您能详细解释一下吗。我只是个初学者。对于作为内置类的示例PreparedStatement和作为用户定义Classic的MyStatement,这里可能还值得一提的是泛型在这里是不必要的
pubic void someFunction(HasSomeMethod对象)
是等价的,它是一个java库类的对象,另一个是用户定义类的对象。所以第一个类是一个编译代码。那么,我们如何为这两者实现相同的接口呢classes@AkhilSudhakaran也许您可以用第二个实现接口的用户定义类包装库类。您能详细解释一下吗。我只是个初学者。对于作为内置类的示例PreparedStatement和作为用户定义Classic的MyStatement,这里可能还值得一提的是泛型在这里是不必要的
public void someFunction(HasSomeMethod对象)
是等价的问题是什么;你有什么问题?我必须根据提供的输入值调用两个类的函数。一个是内置的,另一个是用户定义的。问题是什么;您遇到了什么问题?我必须根据提供的输入值调用两个类的函数。一个是内置的,另一个是用户定义的