Pfeffer
2017-08-17 01:14
采纳率: 53%
浏览 1.0k
已采纳

关于泛型的问题 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条)

相关推荐 更多相似问题