2 qq 15596225 qq_15596225 于 2015.06.30 10:09 提问

为什么不能调用泛型方???

@Test
public void test(){
int arr[] = {1,2,3,4,5,6,7,8,9};
reverse(arr);
}

//编写一个泛型方法,实现数组反转
public <T> void reverse(T arr[]){
    int start = 0;
    int end = arr.length-1;
    while(start<end){

        T temp = arr[start];
        arr[start] = arr[end];
        arr[end] = temp;

        start++;
        end--;
    }
}

}


5个回答

bdmh
bdmh   Ds   Rxr 2015.06.30 10:12

arr=reverse(arr);

bdmh
bdmh   Ds   Rxr 2015.06.30 10:12

不对,看错了,你说没法调用啥意思

qq_15596225
qq_15596225 就是reverse(arr);这一行报错
大约 3 年之前 回复
qq_15596225
qq_15596225   2015.06.30 10:14

就是reverse(arr);这一行报错

hehwwew
hehwwew   2015.06.30 11:09

是在同一个类下面吗?

hehwwew
hehwwew   2015.06.30 13:38

你那个泛型指的是对象类型数组,你定义的是基本类型数组,所以类型上不支持泛型。你把int 换成 Integer 就可以了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Java泛型在静态方法中的使用
我们在静态方法中使用泛型的时候,我们需要在static 后面加上<T>泛型标识
java静态方法,静态初始化块及静态变量的声明和初始化不能使用泛型的原因
最近学习到了Java中的泛型,对于静态方法,静态初始化块及静态变量的声明和初始化不能使用泛型的原因做了一个汇总: 1。因为泛型是要在对象创建的时候才知道是什么类型的,而对象创建的代码执行先后顺序是static的部分,然后才是构造函数等等。所以在对象初始化之前static的部分已经执行了,如果你在静态部分引用的泛型,那么毫无疑问虚拟机根本不知道是什么东西,因为这个时候类还没有初始化。因此在静态方法
JAVA为什么不让创建泛型数组
首先,我觉得定制java标准的那些人完全可以让java创建泛型数组;只是他们权衡了一下,觉得还是禁止了的好,一下就说说我的揣测: 如果我们写如下代码是没有问题的: List a = new ArrayList(); 那么为嘛到了数组就不行呢: List[] arr = new ArrayList [10]; 我们先来看看数组变量和普通变量的区别:数组变量arr和普通变量a都在栈中,
java泛型程序设计——Varargs 警告+不能实例化类型变量
【0】README0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java泛型程序设计 的 Varargs 警告+不能实例化类型变量 的知识;【1】 Varargs 警告1.1)一个相关问题: 向参数个数可变的方法传递一个泛型类型的实例; 1.1.1)考虑以下方法, 它的参数个数是可变的: public static<T> void addAll(Collec
为什么在java中不能创建泛型数组
前段时间在上国外某教授的algorithm课程,提到在java中不能创建泛型数组,课后也有这个思考题,自己百思不得其解,于是翻开了《think in java》这本书,在书的第15章,写到。这是由于擦除机制。(尽管通读了第15章,小白作者还是有很多地方不明白,如果读者能明白,望不吝赐教) public class ErasedTypeEquicalence { public stat
从头认识java-13.15 使用泛型时出现的问题(1)-泛型不能使用基础类型
这一章节我们来讨论一下使用泛型时出现的问题。今天我们引入第一个问题:就是泛型不能使用基础类型。1.例子package com.ray.ch13; import java.util.ArrayList; public class Test { public static void main(String[] args) { // ArrayList list;//error
Java为什么不能创建泛型数组?
Java为什么不允许创建泛型数组?
java泛型笔记-为什么泛型类型不能是基本类型
刚刚从java核心技术书中看到了泛型的一些操作,泛型机制有一个重要的概念:擦除(erased) ,在运行时,JVM是没有泛型概念的,也就是说定义一个类 Pair,在运行时只有Paris类,而其中的一些变量如 private T first会转换成private Object first(术语叫限定类型),若有通配符时Pair,默认的类型限定为第一个限定的类型,也就是Number,在运行时first
Java不能创建泛型数组的原因
先假设Java可以创建泛型数组,由于java泛型的类型擦除和数组的协变。下面的代码将会编译通过。 List[] stringLists=new List[1]; List intList = Arrays.asList(40); Object[] objects = stringLists; objects[0]=intList; String s=stringLists[0].get(
泛型类的类型为什么不能是基本
1、泛形要求能包容的是对象类型,而基本类型在java里不属于对象。 但是基本类型都有其包装类型,也就是对象类型: int-&gt;Integer long-&gt;Long ....... 2、java, 泛型问题,就是&lt;&gt;里面可以填写哪些类型?  想放int的话要写integer,不能光一个int的,int 是基本数据类型,Integer是其包装类,注意是一个类