对java泛型的理解?

2024-12-28 23:32:52
推荐回答(5个)
回答1:

泛型的定义主要有以下两种:

在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个别对象。(这是当今较常见的定义)

在程序编码中一些包含参数的类。其参数可以代表类或对象等等。(现在人们大多把这称作模板)

        泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。

泛型只不过是java中的类型而已,继承自Type接口。

回答2:

说说我的理解哈:
泛型的作用基本就是参数化数据类型,目的是为了安全,比如你在定义方法返回值的时候是list,然后你将list的数据类型泛型化为String,这样的话,你的方法体中如果return的list的元素如果有非String类型的话,程序编译就会报错,而不会等到运行时才报错,如果不使用泛型,要到运行时才能发现错误。编译时出错造成的损失要比运行时少很多。

回答3:

泛型我个人理解就是先预定义一种虚拟的类型,在初始化的时候再指定他的实际类型。
比如Java类库在定义list的时候只是给定了一个泛型,然后你在具体使用的时候,声明之后,在实例化的时候就需要指定比如List lst = new ArrayList();

回答4:


型(Generic type 或者 generics)是对
简单的理解,就是对类型的参数化,比如我们定义一个类属性或者实例属性时,往往要指定具体的类型,如Integer、Person等等,
但是如果使用了泛型,我们把这些具体的类型参数化,用一个广泛的可以表示所有类型的“类型”T来定义,那这个T就是泛型的表示。

可以在集合框架(Collection framework)中看到泛型的动机。例如,Map 类允许您向一个 Map 添加任意类的对象,即使最常见的情况是在给定映射(map)中保存某个特定类型(比如 String)的对象。

因为 Map.get() 被定义为返回 Object,所以一般必须将 Map.get() 的结果强制类型转换为期望的类型,如下面的代码所示:

[java] view plain copy print?

  • Map m = new HashMap();  

  • m.put("key", "value");  

  • String s = (String) m.get("key");  

  • 要让程序通过编译,必须将 get() 的结果强制类型转换为 String,并且希望结果真的是一个 String。如果map中保存了的不是 String 的数据,则上面的代码将会抛出 ClassCastException。

回答5:

比如一个list集合 ,没有指定类型时里面都是object对象, 如果你需要取出来就是想要的类型,而不需要强转,这时候就要用到泛型 ,,如 指定List 里面取出来的就是Sting类型的元素,