如何在一个方法中解析不同类型的参数

时间:2017-04-06 05:30:53

标签: java

在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中使用泛型参数吗?

提前致谢

3 个答案:

答案 0 :(得分:2)

使用java generics

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){....}