@Test
/* 编写一个泛型方法,接收一个任意数组,并颠倒数组中的所有元素; */
public <T>void DianDao(T arr[]){
int start = 0;
int end = arr.length-1;
while(true){
if(start >= end)
{
break;
}
T temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
@Test
public void test3(){
int arr1[]={1,2,3,4,5,6,7};
System.out.println(DianDao(arr1)<T>);
}
}
| 问:想遍历arr1[], syso中报错,求问;
System.out.println(DianDao(arr1)<T>);
DianDao方法里接收一个具体的对象。 后面再加个<T>,语法都不对了
好几点,
首先 arr1后面加一个<T> 算什么?语法不对,泛型 声明在 类,方法,变量上,你放在那里 是什么?
然后就是 泛型的 实际类型参数 要求必须是对象类型,int 是基本类型,不能作为实际类型参数
还有就是 print方法里参数 必须是有值的,而你的方法 是没有 返回值的,打印什么?
想打印的话,返回些东西。
这样:
Integer arr1[] = { 1, 2, 3, 4, 5, 6, 7 };
DianDao(arr1);
System.out.println();
楼上说的对啊。
3l正解