在Java中,我想将3个重载方法组合成一个通用方法,如下所示: 方法1:
public void method1(String name, String Para){......}
//学生是一个对象 方法2:
public void method2(String name, Student para){....}
方法3:
public boolean method3(String name, List <Student> para){...}
我如何将上述3种方法合并为一种,合并后应如下:
public boolean generalMethod(String name, ?????? para){....}
我应该在Java中使用泛型参数吗?
提前致谢
答案 0 :(得分:2)
public class MyService {
public static void main(String[] args) {
MyService myService = new MyService();
myService.method("name", "hello");
myService.method("name", new Student());
myService.<List<Student>>method("name", Lists.newArrayList(new Student()));
}
public <T> void method(String name, T para) {
System.out.println(para);
}
}
答案 1 :(得分:1)
这绝对是一个丑陋的解决方案,您可以按照以下方式购买
, ...
在方法中,您可以使用public boolean generalMethod(String name, Object para){....}
运算符
para
的类型
<强>更新强>
由于这些参数之间没有直接关系,因此不能直接使用泛型。(实际上,您可以在泛型中使用Object类型,但不要添加太多值)。如果有一个共同的父类,那么你可以使用它。
你可以在this post
中做同样的事情答案 2 :(得分:0)
由于所有类都扩展了Object
类,因此您可以使用
public boolean generalMethod(String name, Object para){....}