我有以下方法
private void test(String A, String B, <?> C) throws Exception {
//.....
}
我希望C是一个通用参数或任何东西(int,long,double等)。这样做的正确方法是什么?
答案 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)
{
...
}