Java 泛型与容器

泛型与容器**,的字面意思就是广泛的类型。类、接口和方法代码可以应用于非常广泛的类型,代码与它们能够操作的数据类型不再绑定在一起,同一套代码可以用于多种数据类型,这样,不仅可以复用代码,降低耦合,而且可以提高代码的可读性和安全性。
Java 泛型与容器

那为什么还要用泛型呢?或者说,泛型到底有什么好处呢?泛型主要有两个好处:

  • 更好的安全性。
  • 更好的可读性。

语言和程序设计的一个重要目标是将bug尽量消灭在摇篮里,能消灭在写代码的时候,就不要等到代码写完程序运行的时候。只使用Object,代码写错的时候,开发环境和编译器不能帮我们发现问题,看代码:

    public class Pair<U, V> {
        U first;
        V second;

        public Pair(U first, V second) {
            this.first = first;
            this.second = second;
        }

        public U getFirst() {
            return first;
        }

        public V getSecond() {
            return second;
        }
    }
Pair pair = new Pair("酷客教程",1);
Integer id = (Integer)pair.getFirst();
String name = (String)pair.getSecond();

看出问题了吗?写代码时不小心把类型弄错了,不过,代码编译时是没有任何问题的,但运行时程序抛出了类型转换异常ClassCastException。如果使用泛型,则不可能犯这个错误,比如下面的代码:

Pair<String, Integer> pair = new Pair<>("酷客教程",1);
Integer id = pair.getFirst(); //有编译错误
String name = pair.getSecond(); //有编译错误

开发环境(如Eclipse)会提示类型错误,即使没有好的开发环境,编译时Java编译器也会提示。这称之为类型安全,也就是说,通过使用泛型,开发环境和编译器能确保不会用错类型,为程序多设置一道安全防护网。使用泛型,还可以省去烦琐的强制类型转换,再加上明确的类型信息,代码可读性也会更好。

阅读前提

教程目录

赞(0)

评论 抢沙发

评论前必须登录!