使方法参数成为通用参数或通配符。

时间:2014-03-11 17:34:53

标签: java generics

我有以下方法

    private void test(String A, String B, <?> C) throws Exception {
       //.....
    }

我希望C是一个通用参数或任何东西(int,long,double等)。这样做的正确方法是什么?

5 个答案:

答案 0 :(得分:3)

首先,不要将变量命名为大写字母。第二,像这样 -

private <TYPE> void test(String a, String b, TYPE c) throws Exception {
   //.....
   // c is of the generic type TYPE.
}

使用的任何基本类型都将自动装入其对象包装器类型(例如,double将为Double等)。

答案 1 :(得分:1)

您不应该使用泛型来完成该任务。通过为不同的原始类型重载该方法,分别处理它们会更有意义:

private void test(String A, String B, int C) throws Exception { }
private void test(String A, String B, long C) throws Exception { }
private void test(String A, String B, float C) throws Exception { }

答案 2 :(得分:0)

喜欢这个

private <T> void test(String A, String B, T C) throws Exception {
   //.....
}

答案 3 :(得分:0)

使用通用Object

private void test(String A, String B, Object C) throws Exception {
   //.....
}

Something.test("A", "B", C);

答案 4 :(得分:0)

可以同时使用通用方法和通配符。这是方法Collections.copy():

class Collections {
    public static <T> void copy(List<T> dest, List<? extends T> src) {
    ...
}

可以在此处找到关于通用方法的优秀资源:http://docs.oracle.com/javase/tutorial/extra/generics/methods.html

返回您的代码......

public <T> void test(T o)
{
   ...
}