java中为什么使用泛型,使用泛型的优点

2020-11-22 07:11:03 字数 3657 阅读 2933

1楼:匿名用户

泛型(generic type 或者generics)是对 java 语言的类型系统的一种扩展,以支持创建可以按类型进行参

数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。

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

java里面使用泛型的优点

2楼:匿名用户

使用泛型之后,集合类取数据时就不需要对存储的数据进行强制类型转换。

也避免了一些异常的出现。

例如listlist=new arraylist();

list.add("123");

string str=list.get(0);

如果不适用泛型就是这样。

list list=new arraylist();

list.add(123);

string str=(string)list.get(0);

如果这样就会出现类型转换的异常。

java.lang.integer cannot be cast to java.lang.string

3楼:匿名用户

由于集合里面能放各种各样数据格式的数据, 使用泛型之后能限制放入的数据类型, 从而起到一定的控制作用!!!

4楼:永远不知终点

我觉得主要是有两点,第一点是用泛型写**比较容易,第二点是其类型比较安全。希望对你有所帮助。

java中为什么要使用泛型

5楼:匿名用户

public genericexample_2(string testattribute)

6楼:乘风偷月

使用泛型是为了编译时出现错误了能及时提醒。另外,也是限定要操作的对象类型。

如:listlist=new arraylist();它的操作对象就只能是string类型。

class dog{}

7楼:

java 语言中引入泛型是一个较大的功能增强。

泛型好处:

1,类型安全。 泛型的主要目标是提高 java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。

没有泛型,这些假设就只存在于程序员的头脑中(或者如果幸运的话,还存在于**注释中)。

2,消除强制类型转换。 泛型的一个附带好处是,消除源**中的许多强制类型转换。这使得**更加可读,并且减少了出错机会。

3,潜在的性能收益。 泛型为较大的优化带来可能。在泛型的初始实现中,编译器将强制类型转换(没有泛型的话,程序员会指定这些强制类型转换)插入生成的字节码中。

但是更多类型信息可用于编译器这一事实,为未来版本的 jvm 的优化带来可能。由于泛型的实现方式,支持泛型(几乎)不需要 jvm 或类文件更改。所有工作都在编译器中完成,编译器生成类似于没有泛型(和强制类型转换)时所写的**,更能确保类型安全。

java里面使用泛型有哪些优点?

8楼:匿名用户

使用泛型之后,集合类取数据时就不需要对存储的数据进行强制类型转换。

也避免了一些异常的出现。

例如listlist=new arraylist();

list.add("123");

string str=list.get(0);

如果不适用泛型就是这样。

list list=new arraylist();

list.add(123);

string str=(string)list.get(0);

如果这样就会出现类型转换的异常。

java.lang.integer cannot be cast to java.lang.string

java中的泛型是干嘛的,起到什么作用??什么情况下才能用到泛型??

9楼:20缔造者

泛型:规定了此集合中元素的类型。

例如:arraylistarr = new arraylist();

这样就创建了一个包含整数的 arraylist 对象。

如果要自己定义泛型类,就用如下形式:

class mycollection

尖括号中的类型可以有限制,例如你需要让 mycollection 中的类型都具有可比性,可以用如下格式:

class mycollection

10楼:小湿底

限制使用对象类型,起到程序编译时限制作用

java中集合泛型带来了什么好处

11楼:育知同创教育

首先,了解一下java关于泛型的概念。泛型,在c++中被

称为模板,就是一种抽象的编程方式。当我们定义类和方法的时候,可以用一种通用的方式进行定义,而不必写出具体的类,这些未知的东西会在真正使用的时候在确定。

对于集合类来说,它们可以存放各种类型的元素。如果在存放之前,就能确定元素的类型,那么就可以更加直观,也让**更加简洁。

为什么要用java泛型

12楼:育知同创教育

从上面的内容中,大家已经明白了泛型的具体运作过程。也知道了接口、类和方法也都可以使用泛型去定义,以及相应的使用。是的,在具体使用时,可以分为泛型接口、泛型类和泛型方法。

自定义泛型接口、泛型类和泛型方法与上述java源码中的list、arraylist类似。如下,我们看一个最简单的泛型类和方法定义:

1 public class generictest 8 9 }10 11 class box18 19 public box(t data) 22 23 public t getdata() 26 27 }

在泛型接口、泛型类和泛型方法的定义过程中,我们常见的如t、e、k、v等形式的参数常用于表示泛型形参,由于接收来自外部使用时候传入的类型实参。那么对于不同传入的类型实参,生成的相应对象实例的类型是不是一样的呢?

1 public class generictest 13 14 }

由此,我们发现,在使用泛型类时,虽然传入了不同的泛型实参,但并没有真正意义上生成不同的类型,传入不同泛型实参的泛型类在内存上只有一个,即还是原来的最基本的类型(本实例中为box),当然,在逻辑上我们可以理解成多个不同的泛型类型。

究其原因,在于java中的泛型这一概念提出的目的,导致其只是作用于**编译阶段,在编译过程中,对于正确检验泛型结果后,会将泛型的相关信息擦出,也就是说,成功编译过后的class文件中是不包含任何泛型信息的。泛型信息不会进入到运行时阶段。

对此总结成一句话:泛型类型在逻辑上看以看成是多个不同的类型,实际上都是相同的基本类型。

java集合框架中的泛型有什么优点

13楼:匿名用户

你把方法写成泛型,这样就不用针对不同的数据类型(比如int,double,float)分别写方法,只要写一个方法就可以了,提高了**的复用性,减少了工作量。 希望采纳。

请问,java泛型可以做什么,Java里泛型有什么作用?我怎么觉得那个可写可不写

1楼 gta小鸡 复用一个类或方法,使之可以用于不同的参数类型上。 2楼 l旧梦颜 listlist new arraylist 有了泛型,list里面可以装各种类型的对象,而不只是单一的 java里泛型有什么作用?我怎么觉得那个可写可不写 3楼 匿名用户 举个例子来说 你的钱包里你规定只装钱 那么...