导航:首页 > 软件资讯 > 泛型app有什么用

泛型app有什么用

发布时间:2022-10-06 16:47:44

java里泛型有什么作用我怎么觉得那个可写可不写

泛型是java jdk1.5出的新功能。它主要是对同一种类型做的集合,有很多人说他不好用,但是sun既然提供了他就是让我们来用的,这样可以少些很多代码。

android activity后面加泛型有什么用

加泛型是为了控制此activity的所处理数据的类型,类型可以是固定的一个类,也可以所继承父类的子类,泛型是框架搭的一个重要要素。

❸ java中泛型是什么意思,作用是什么

java 泛型是java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。
泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。
可以在集合框架(Collection framework)中看到泛型的动机。例如,Map 类允许您向一个 Map 添加任意类的对象,即使最常见的情况是在给定映射(map)中保存某个特定类型(比如 String)的对象。
因为 Map.get() 被定义为返回 Object,所以一般必须将 Map.get() 的结果强制类型转换为期望的类型,如下面的代码所示:

Map m = new HashMap();
m.put("key", "blarg");
String s = (String) m.get("key");

要让程序通过编译,必须将 get() 的结果强制类型转换为 String,并且希望结果真的是一个 String。但是有可能某人已经在该映射中保存了不是 String 的东西,这样的话,上面的代码将会抛出 ClassCastException。
理想情况下,您可能会得出这样一个观点,即 m 是一个 Map,它将 String 键映射到 String 值。这可以让您消除代码中的强制类型转换,同时获得一个附加的类型检查层,该检查层可以防止有人将错误类型的键或值保存在集合中。这就是泛型所做的工作。

泛型的好处
Java 语言中引入泛型是一个较大的功能增强。不仅语言、类型系统和编译器有了较大的变化,以支持泛型,而且类库也进行了大翻修,所以许多重要的类,比如集合框架,都已经成为泛型化的了。
这带来了很多好处:
1,类型安全。 泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设就只存在于程序员的头脑中(或者如果幸运的话,还存在于代码注释中)。
2,消除强制类型转换。 泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。
3,潜在的性能收益。 泛型为较大的优化带来可能。在泛型的初始实现中,编译器将强制类型转换(没有泛型的话,程序员会指定这些强制类型转换)插入生成的字节码中。但是更多类型信息可用于编译器这一事实,为未来版本的 JVM 的优化带来可能。由于泛型的实现方式,支持泛型(几乎)不需要 JVM 或类文件更改。所有工作都在编译器中完成,编译器生成类似于没有泛型(和强制类型转换)时所写的代码,只是更能确保类型安全而已。

Java语言引入泛型的好处是安全简单。泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
泛型在使用中还有一些规则和限制:
1、泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。
2、同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。
3、泛型的类型参数可以有多个。
4、泛型的参数类型可以使用extends语句,例如<T extends superclass>。习惯上成为“有界类型”。
5、泛型的参数类型还可以是通配符类型。例如Class<?> classType = Class.forName(Java.lang.String);
泛 型还有接口、方法等等,内容很多,需要花费一番功夫才能理解掌握并熟练应用。在此给出我曾经了解泛型时候写出的两个例子(根据看的印象写的),实现同样的 功能,一个使用了泛型,一个没有使用,通过对比,可以很快学会泛型的应用,学会这个基本上学会了泛型70%的内容。

❹ 为什么要使用泛型使用泛型有什么作用

泛型的作用就是提高代码的重用性,你肯定知道函数重载吧,但是重载的话还是太烦,要累赘的写这么多的重复代码,泛型就是就是避免强制类型转换,减少装箱拆箱提高性能,减少错误

❺ 什么叫泛型有什么作用

泛型。即通过参数化类型来实现在同一份代码上操作多种数据类型。泛型类和泛型方法同时具备可重用性、类型安全和效率,这是非泛型类和非泛型方法无法具备的。泛型通常用与集合以及作用于集合的方法一起使用。

泛型是c#2.0的一个新增加的特性,它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。

Java 的泛型

Java 泛型的参数只可以代表类,不能代表个别对象。由于Java泛型的类型参数之实际类型在编译时会被消除,所以无法在运行时得知其类型参数的类型,而且无法直接使用基本值类型作为泛型类型参数。Java编译程序在编译泛型时会自动加入类型转换的编码,故运行速度不会因为使用泛型而加快。

由于运行时会消除泛型的对象实例类型信息等缺陷经常被人诟病,Java及JVM的开发方面也尝试解决这个问题,例如Java通过在生成字节码时添加类型推导辅助信息,从而可以通过反射接口获得部分泛型信息。通过改进泛型在JVM的实现,使其支持基本值类型泛型和直接获得泛型信息等。

❻ 泛型的作用是什么

它有什么优势?它对性能有影响吗?它在执行时的行为是什么?.NET BCL中有哪些泛型类型?举例说明平时编程中您定义的泛型类型。 泛型的作用在于“算法的重用”。(这点其实很好理解,原来的ArrayList只能接受Object,现在通过List可以接受任何类型,也就是说ArrayList的方法都被各个类型重用了。但是Dot Net的泛型有个比较制肘地方,就是你很难对数值类型(值类型)进行算法抽象,因为这牵涉到运算符重载的问题,同时Dot Net的泛型的类型参数也不能约束成一个基元值类型(如int、double、float) 。) 它有什么优势? 第一:源代码保护。(如果你知道C++模板对泛型的实现机制,就会知道C++在编译的时候根据对泛型的调用,自动“内联”了一个实现,这样泛型的内容就暴露了,尔DotNet的实现方式就不同了,泛型类和方法会被编译成IL,在执行的时候由JIT负责将IL变化为指定类型参数的本地代码,从而保护了源代码) 第二:类型安全。(这点是最显而易见的,抛弃了使用ArrayList时各种丑陋的强制类型转换) 第三:更清晰地代码。因为没有了强制类型转换,所以代码自然显得更清晰,但是使用泛型时候带来的<>有时候确实也会让人搞糊涂,幸好泛型方法可以用类型推断或者using语句来进一步简化写法。 第四:更好的性能,因为值类型可以避免装箱和拆箱所带来的损耗(垃圾回收的次数也会减少)。(这点正是泛型神奇的地方,开发历史上抽象能力的上升往往意味着性能的下降,但是泛型却不是!泛型抽象了算法,但是C++和DotNet对泛型的实现能够让性能无损,并且更快。Java的擦除法泛型就没有这种性能上的好处。) 它对性能有影响吗? 对性能有积极的影响,因为值类型可以避免装箱和拆箱所带来的负面影响,避免了垃圾回收,使得性能显着提高。但是对引用类型这种影响就不明显了。但是需要注意的是首次为一个特定数据类型调用方法时,CLR都会为这个方法生成本地代码。这会增大应用程序的工作集大小,从而影响性能。 它在执行时的行为是什么? 使用泛型类型参数的一个方法在进行JIT编译时,CLR获取IL,用指定的类型实参进行替换,然后创建本地代码。需要特别注意的是引用类型是共享代码的,而对值类型就会为每一种生成独立的一份类型代码。但是需要指出的是引用类型的这种代码共享并不会造成封闭类型只执行一次构造函数(就算是静态构造函数也是这样的)。 .NET BCL中有哪些泛型类型? List、Dictionary、Queue、Stack、SortedList和SortedDictionary、LinkedList等等。 举例说明平时编程中您定义的泛型类型。泛型的出现会替换原来一部分使用多态的地方从而提高性能和带来更好的编译时检查,这样就不需要在子类和超类(接口)间频繁转换了。

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

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

ArrayList<Integer> arr = new ArrayList<Integer> ();

这样就创建了一个包含整数的 ArrayList 对象。
如果要自己定义泛型类,就用如下形式:

class MyCollection<E> {...}

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

class MyCollection<E extends Comparable> {...}

❽ c#泛型有什么作用

关于object类型:
1.object类型可以来引用任何类型的实例;
2.object类型可以存储任何类型的值;
3.可以定义object类型的参数;
4.可以把object作为返回类型。
但是--这样做有很大的问题

1.会因为程序员没有记住使用的类型而出错,造成类型不兼容;
2.值类型和引用类型的互化即装箱拆箱使系统性能下降。

C#2.0提出的泛型就是避免强制类型转换,减少装箱拆箱提高性能,减少错误。

System.Collections.Generic命名空间提供许多集合类和接口的泛型版本。
所谓泛型:
即通过参数化类型来实现在同一份代码上操作多种数据类型。泛型编程是一种编程范式,它利用“参数化类型”将类型抽象化,从而实现更为灵活的复用。
C#泛型赋予了代码更强的类型安全,更好的复用,更高的效率,更清晰的约束。
C#泛型能力由CLR在运行时支持,区别于C++的编译时模板机制,和java的编译时的“搽拭法”。这使得泛型能力可以在各个支持CLR的语言之间进行无缝的互操作。
C#泛型代码在被编译为IL和元数据时,采用特殊的占位符来表示泛型类型,并用专有的IL指令支持泛型操作。而真正的泛型实例化工作以“on-demand”的方式,发生在JIT编译时。
C#泛型编译机制如下:
第一轮编译时,编译器只为Stack类型产生“泛型版”的IL代码和元数据,并不进行泛型类型的实例化,T在中间只充当占位符。
JIT编译时,当JIT编译器第一次遇到Stack时,将用int类型替换“泛型版”IL代码与元数据中的T -- 进行泛型类型的实例化。
CLR为所有类型参数为“引用类型”的泛型类型产生同一份代码,但如果类型参数为“值类型”,对每一个不同的“值类型”,CLR将为其产生一份独立的代码。
C#泛型的几个特点
如果实例化泛型类型的参数相同,那么JIT编译器会重复使用该类型,因此C#的动态泛型能力避免了C++静态模板可能导致的代码膨胀的问题。
C#泛型类型携带有丰富的元数据,因此C#的泛型类型可以应用于强大的反射技术。
C#的泛型采用“基类、接口、构造器、值类型/引用类型”的约束方式来实现对类型参数的“显示约束”,提高了类型安全的同时,也丧失了C++模板基于“签名”的隐式约束所具有的高灵活性。
C#泛型类在编译时,先生成中间代码IL,通用类型T只是一个占位符。在实例化类时,根据用户指定的数据类型代替T并由即时编译器(JIT)生成本地代码,这个本地代码中已经使用了实际的数据类型,等同于用实际类型写的类,所以不同的封闭类的本地代码是不一样的。按照这个原理,我们可以这样认为:泛型类的不同的封闭类是分别不同的数据类型。
这样泛型不仅更加灵活,也同时将代码的简便和提高到一个层次!不用再为具体不同的重载方法写具体的代码了!
C# 泛型是开发工具库中的一个无价之宝。它们可以提高性能、类型安全和质量,减少重复性的编程任务,简化总体编程模型,而这一切都是通过优雅的、可读性强的语法完成的。尽管 C# 泛型的根基是 C++ 模板,但 C# 通过提供编译时安全和支持将泛型提高到了一个新水平。C# 利用了两阶段编译、元数据以及诸如约束和一般方法之类的创新性的概念。毫无疑问,C# 的将来版本将继续发展泛型,以便添加新的功能,并且将泛型扩展到诸如数据访问或本地化之类的其他 .NET Framework 领域。
当然,C#的泛型还很多应用,现在我还只是了解了它的机制和原理,在接下来的学习中我会系统得学习泛型所支持的抽象泛型,接口泛型,结构和委托等!
具体的建议你看一下《deep in C#》这本书,上面解释的很生动,很有趣。中文翻译版的叫《深入理解C#》(第二版)。

❾ java的泛型有没有用

当然有用,其实泛型存在的意义就好比抽象类,抽象类是用来规范子类。而泛型对于实现代码复用,提高开发效率帮助很大。
当然不用泛型可不可以,答案是可以,其实很多程序员开发多年都忘记使用泛型的方做开发,这是一个深度问题,而不是广议问题。要想弄懂泛型,就必须要知道它存在的意义。
在项目研发中,经常会出现一个方法,多种不同类型的对象进行调用,简单的做法就是为各自的类型写上一个方法,独立调用,比如:
//两个整数相加
public int plus(int a, int b){
return a+b;
}
//两个字符串相连接
public string connectStr(string str1, string str2){
return str + str2
}
上面是两个函数,一个是整数的相加,一个是字符串的连接,当然,这是很简单两个函数;但是可以看出两个函数的共同之处,都是相加,"+"对于字符串来讲是字符串的连接,但是可以把这两个函数写成一个函数,如下:
public T plusTwoObj(T objT1, T objT2){
return objT1 + obT2;
}
这个函数中出现的T,其实就是一个占位符,也就是这个位置由T来代替;类似于占座,它起到的作用只是占座,不会有实际的意义,最终这个位置是由其他人来坐的;比如:T给int占座,给string占座,给float占座,给自定义类型占座,实际的操作是由其它类型来处理的,其它类型会代替它;
这个函数是由两个函数提出的公有函数,这样,它就不局限于某一个类型的函数进行相加处理,而是许多类型可通用的方法,所以,泛型有代码复用、提高研发效率的作用;而定义成泛型,而不用所有类型基类 object类型呢,就涉及数据类型转换的问题,类型转换的拆箱和装箱需要消耗大量内存和cpu资源。
泛型需要很系统的来解释,几句话可能说不清,建议你还是把教材视频等多翻出来看看。建议把泛型和抽象类结合在一起看,两者的相似点和区别。

❿ java中的泛型具体能应用在哪些方面上

泛型本质上是提供类型的"类型参数",它们也被称为参数化类型(parameterized type)或参量多态(parametric polymorphism)。其实泛型思想并不是 Java 最先引入的,C++ 中的模板就是一个运用泛型的例子。
具体应用会在实际开发中领悟到的!

阅读全文

与泛型app有什么用相关的资料

热点内容
失去的眼角膜电影完整版 浏览:115
女星走光电影 浏览:132
恐怖鬼电影免费观看 浏览:475
更新最快的影院 浏览:505
电影院办的卡可以在网上消费电影吗 浏览:835
主角专门抢别人老婆的都市小说 浏览:292
啄木鸟女星电影 浏览:866
c语言编程源码下载工具 浏览:781
儿女传奇电影系列 浏览:593
武平废品回收小程序源码 浏览:273
工作者迷失1963电影 浏览:703
余美颜摩登情书txt 浏览:819
linux命令大全完整版 浏览:829
单片机画电路图用什么软件好 浏览:108
phpfpm工作原理 浏览:421
加密u盘定制哪家好 浏览:947
如何将视频做成动态表情包安卓 浏览:964
外置打印服务器是什么 浏览:321
加密电脑钱包 浏览:693