在Java中实现泛型机制的目标是为了可以把发现 bug 的时机提前到编程源码时,而不是运行时。如果在编译时就可以发现 bug ,就可以节省大量的调试Java程序的时间,因为编译错误可以比较容易和比较快速地被发现和修复。而且,泛型仅仅只存在于编译时,这个事实也是我们学习Java泛型的过程中必须记住的最重要的一个事实。

java泛型的作用是什么-LMLPHP

泛型作用有:
类型的参数化,就是可以把类型像方法的参数那样传递。这一点意义非凡。
泛型使编译器可以在编译期间对类型进行检查以提高类型安全,减少运行时由于对象类型不匹配引发的异常。

例如:

public class ListContainer<T> {
    private T t;
 
    public T getObj() {
        return t;
    }
    public void setObj(T t) {
        this.t = t;
    }
}
登录后复制

这里<T>的T的类型的参数,具体T指代什么类型,是String还是Animal还是Dog类型此处不管,而在程序员开发时使用到ListContainer时再指定,

如:

ListContainer<Dog> myCon=new ListContainer<Dog>();
登录后复制

这种环境下,编译器就知道ListContainer容器是放Dog类型对象的。并进行类型安全检查。

myCon.setObj(new Dog())//ok
myCon.setObj(“123”);//编译时提醒类型错误
登录后复制

这样设计的容器在使用时编译器就可以帮忙做很大一部分的类型安全检查工作了,这就避免了很多运行时的ClassCastException异常,程序员也无需记住各种对象的类型和担心类型匹配问题了。同时大部分情况下也不用做类型强制转换工作了。

以上就是java泛型的作用是什么的详细内容,更多请关注Work网其它相关文章!

09-10 12:21