Pfeffer 2017-08-17 01:14 采纳率: 50%
浏览 1051
已采纳

关于泛型的问题 Java 核心技术 一

Function: 但在添加或删除元素时,具有自动调节数组容量的功能,而不需要为此编写任何代码。

ArrayList<Employee> staff = new ArrayList<>();

这被称为“菱形” 语法,因为空尖括号<>就像一个菱形。
可以结合new操作符使用菱形语法。
编译器会检查新值是什么。
如果赋值给一个变量,或传递到某个方法,或者从某个方法返回,编译器会检查这个变量,参数或方法的泛型类型,然后将这个类型放在<>中。 在这个例子中,new ArrayList<>()将赋至一个类型为ArrayList的变量,所以泛型类型为Employee。

  1. 我在书上看到一个叫做 ArrayList(), 这个T 就是泛型吧。
  2. 求大神给写一个简单的泛型程序给我看一下。 (书上将Arraylist直接放到了继承中说,但是也是一笔带过,我上网查了一下,这个泛型也是一种对象类型,目的是为了统一,所以希望能有一个简单的程序加深一下理解)
  • 写回答

8条回答 默认 最新

  • 鼠晓 博客专家认证 2017-08-17 01:36
    关注

    看下面这个简单的例子能不能让你明白泛型是什么(临时想的可能体现不出来,泛型强大的技巧,但是能说明问题)

     /**
     * Created by zsl on 2017/8/17.
     */
    public class Demo<T> {
        private T t;
    
        public Demo(T t) {
            this.t = t;
        }
    
        public void sayT() {
            System.out.println(t.toString());
        }
    }
    
    class Main {
        public static void main(String[] args) {
            //会报错,,因为我规定了泛型是String,,而不是Integer
            // Demo<String> demo = new Demo<String>(1);
            //不会报错,,符合泛型
            Demo<String> demo = new Demo<String>("123");
            demo.sayT();
        }
    }
    

    泛型说白了就是一种约束,,例如集合中,如果不添加泛型约束,遍历时不能做同一处理

    有问题还可以追问,,例子仅供参考,,jdk1.8完美运行。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作