- 浏览: 233851 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
tonyyan:
谢谢分享!
Kafka 监控 -
dtyu100:
反手就是一个赞,这相当于是官网druid.io的中文版本,很厉 ...
Druid 大数据分析之快速应用(单机模式) -
sqy:
2018-04-12T01:30:27,527 ERROR [ ...
Druid 大数据分析之快速应用(单机模式) -
wangyudong:
学习了,不错的Spring boot实例,参考着很快写出了RE ...
Spring boot 入门实例 -
string2020:
servlet4规范出来了,求翻译
Java Servlet3.1规范
Java泛型是JDK1.5中添加的支持的,所以在JDK1.5之前的版本是没有些功能。泛型就是在对象建立时不指明类中属性的具体类型,而是由外部在声明及实例化对象时指定类型。泛型可以解决数据类型安全性问题。
一、泛型基本应用
泛弄定义:
构造方法应用泛型
指定多个泛型类型
在实例化对象时,如不指定类型,这样使用此类时,就会在编译时出现不安全的警告信息,但是并不会影响程序的运行。如没有指定类型,则统一使用Object进行接收。
二、通配符
在开发中对象引用传递是最常见,多态表现在最明显;但是在泛型类的操作中,在进行引用传递时泛型类型必须匹配才可以传递,否则无法传递。例如下面例子,编译出错。尽管String是Object类的子类,但是引用传递同样无法进行传递。虽然你可以直接将Info<Object>修改为Info,程序可以正常使用,但这样做不妥当,所以你可以引用通配符“?”
修改为:
注意:使用通配符不能用于接收泛型对象,如:
三、泛型受限
待续...
一、泛型基本应用
泛弄定义:
【访问权限】 class 类名称<泛型类型标识1,泛型类型标识2..>{ 【访问权限】 泛型类型标识符 变量名称; 【访问权限】 泛型类型标识符 方法名称(){ }; 【访问权限】返回值类型声明 方法名称(泛型类型标识符 变量名称){ }; } 类名称<具体类> 对象名称 = new 类型名称<具体类>();
class Point<T>{ private T name ; public T getName(){ return this.name; } public void setName(T name){ this.name = name; } } public class Test1{ public static void main(String args[]){ Point<Integer> p = new Point<Integer>(); p.setName(24); System.out.println(p.getName()); //输出 24 } } public class Test2{ public static void main(String args[]){ Point<String> p = new Point<String>(); p.setName("ITeye"); System.out.println(p.getName()); //输出"ITeye" } }
引用
泛型类中具体类,不能指定其基本数据类型,必须设置成类,加入泛型避免了类转化异常(ClassCastException)的发生,这样使程序的操作更加安全。
构造方法应用泛型
【访问权限】 构造方法(<泛型类型标识符> 变量名称){ } ;
指定多个泛型类型
class Point<K,v>{ private K key ; private V value ; public K getKey(){ return this.key ; } public void SetKey(K key){ this.key = key ; } public V getValue(){ return this.value ; } public void setValue(V value){ this.value = value ; } }; public class Test{ public static void main(String args){ Point<String,Integer> p = new Point<String,Integer>(); p.setKey("ITeye") ; p.setValue(40) ; System.out.println(p.getKey()+"--"+p.getValue()); } }
引用
在实例化对象时,如不指定类型,这样使用此类时,就会在编译时出现不安全的警告信息,但是并不会影响程序的运行。如没有指定类型,则统一使用Object进行接收。
二、通配符
在开发中对象引用传递是最常见,多态表现在最明显;但是在泛型类的操作中,在进行引用传递时泛型类型必须匹配才可以传递,否则无法传递。例如下面例子,编译出错。尽管String是Object类的子类,但是引用传递同样无法进行传递。虽然你可以直接将Info<Object>修改为Info,程序可以正常使用,但这样做不妥当,所以你可以引用通配符“?”
public class Test{ public static void main(String args[]){ Info<String> info = new Info<String>() ; info.setTitle("ITeye"); getInfo(); } public static void getInfo(Info<Object> temp){ System.out.println("标题:" + temp); } }
修改为:
public class Test{ public static void main(String args[]){ Info<String> info = new Info<String>() ; info.setTitle("ITeye"); getInfo(); } //Info<?>可以表示任意的泛型对象 public static void getInfo(Info<?> temp){ System.out.println("标题:" + temp); } }
注意:使用通配符不能用于接收泛型对象,如:
Info<?> info = new Info<String>(); //错误
三、泛型受限
待续...
发表评论
-
数据接入ElasticSearch方式培训PPT
2018-01-28 11:53 1929写道 数据接入ElasticSearch几种方式总结,涉及 ... -
Apache ftp tools 图片下载支持中文
2017-12-05 23:55 1255写道 Apache Commom net:1) 递归pat ... -
FtpURLConnection 图片下载编码问题
2017-12-05 23:13 866写道 问题:1)Web项目中下载图片,存在下载不全,丢失部 ... -
Kafka 监控
2017-11-18 00:31 5788背景概述 写道 kafka0.9及以前版本ka ... -
Spring Cloud之OAuth2
2017-07-08 12:04 11424备:附件中OAuth2 授权服务器实现源码及PPT 一 ... -
Spring Cloud之Configuration Server
2017-05-19 22:51 1507为什么用spring cloud config 写道 一 ... -
Java Servlet3.1规范
2016-11-25 20:33 1257目录 前言........................ ... -
JMX监控(MBean)
2016-11-23 22:16 4110一、引言 写道 随着企业 IT 规模的不断增长,IT 资 ... -
哈希表在JAVA中如何实现
2016-11-23 20:42 2925一、 复习一下基础知识 1. 截断低位与抹除高位 ... -
Spring boot 入门实例
2016-10-29 00:33 4885写道 Spring Boot是由Pivotal团队提供的全 ... -
Java计算两点经纬度距离及最短运行时间
2016-09-12 21:20 2618概述 经纬度在地图应用中常见,一般结合路网信息库, ... -
计算机软件开源技术、大数据技术等资源教程
2016-08-24 13:01 591基于时间序列化数据引擎排名,很多OLAP工具,根据自身业务 ... -
代码单元与代码点
2016-08-16 17:46 698代码单元与代码点 代码点指编码表(比如Unicode)中某 ... -
Java模块化解决方案
2016-08-15 00:19 4200网络上很多OSGi的文章上来就Activator实例, ... -
深入浅出ClassLoader
2016-08-13 17:06 755你真的了解ClassLoader吗? 这篇文章翻译自zer ... -
Generate axis server code from wsdl
2016-08-04 00:34 12551、为什么需要生成服 ... -
Spring DAO设计实战
2016-01-23 12:21 3270引用 提供不同数据源和方言实现智能分页,因Spring单例 ... -
JAVA NIO 之三
2016-01-17 00:35 1750引用 本节采用JDK1.5之后java.util.con ... -
JAVA NIO 之二
2016-01-14 00:35 2001引用 继上节利用JAVA NIO实现简单数据传,本节实现自定 ... -
JAVA NIO 之一
2016-01-12 14:14 1571传统IO 写道 网络传输 ...
相关推荐
Java泛型的用法及T.class的获取过程解析 Java泛型是Java编程语言中的一种重要特性,它允许开发者在编写代码时指定类型参数,从而提高代码的灵活性和可读性。本文将详细介绍Java泛型的用法 及T.class的获取过程解析...
Java 泛型详解 Java 泛型是 Java SE 5.0 中引入的一项特征,它允许程序员在编译时检查类型安全,从而减少了 runtime 错误的可能性。泛型的主要优点是可以Reusable Code,让程序员编写更加灵活和可维护的代码。 ...
Java泛型是Java编程语言中的一个强大特性,它允许我们在定义类、接口和方法时指定类型参数,从而实现代码的重用和类型安全。在Java泛型应用实例中,我们可以看到泛型如何帮助我们提高代码的灵活性和效率,减少运行时...
Java泛型机制详解 Java泛型是Java语言中的一种机制,用于在编译期检查类型安全。Java泛型的出现解决了Java早期版本中类型安全检查的缺陷。Java泛型的好处是可以在编译期检查类型安全,避免了运行时的...
综上所述,虽然Java泛型在编译后会进行类型擦除,但通过上述技巧,我们仍然能够在运行时获得关于泛型类实例化类型的一些信息。在实际开发中,这些方法可以帮助我们编写更加灵活和安全的代码。在示例文件`GenericRTTI...
Java泛型是Java编程语言中的一个关键特性,它在2004年随着Java SE 5.0的发布而引入,极大地增强了代码的类型安全性和重用性。本篇文章将深入探讨Java泛型的发展历程、核心概念以及其在实际开发中的应用。 1. **发展...
Java泛型是Java编程语言中的一个关键特性,它在2004年随着JDK 5.0的发布被引入。这个特性极大地提高了代码的类型安全性和可读性,减少了在运行时出现ClassCastException的可能性。SUN公司的Java泛型编程文档,包括...
下面我们将详细探讨Java泛型接口的相关知识点。 1. **泛型接口的定义** 泛型接口的定义方式与普通接口类似,只是在接口名之后添加了尖括号`<T>`,其中`T`是一个类型参数,代表某种未知的数据类型。例如: ```java...
下面我们将深入探讨Java泛型方法的概念、语法以及使用示例。 **一、泛型方法概念** 泛型方法是一种具有类型参数的方法,这些类型参数可以在方法声明时指定,并在方法体内部使用。与类的泛型类似,它们提供了编译时...
Java 泛型是一种强大的工具,它允许我们在编程时指定变量的类型,提供了编译时的类型安全。然而,Java 的泛型在运行时是被擦除的,这意味着在运行时刻,所有的泛型类型信息都会丢失,无法直接用来创建对象或进行类型...
Java泛型是Java编程语言中的一个强大特性,它允许在定义类、接口和方法时使用类型参数,从而实现参数化类型。这使得代码更加安全、可读性更强,并且能够减少类型转换的必要。在“java泛型的内部原理及更深应用”这个...
这是一个使用JAVA实现的泛型编程,分为两部分,第一部分创建泛型类,并实例化泛型对象,得出相加结果。 第二部分用户自行输入0--4,选择要进行的加减乘除运算或退出,再输入要进行运算的两个数,并返回运算结果及...
"Java 泛型学习" Java 泛型是 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的...
Java 泛型使用详细分析 Java 泛型是 Java 语言中的一种类型系统特性,允许开发者在编译期检查类型安全,以避免在运行时出现类型相关的错误。在本文中,我们将详细介绍 Java 泛型的使用方法和实现原理。 一、泛型的...
Java泛型是Java编程语言中的一个关键特性,它在2004年随着Java SE 5.0的发布而引入,极大地增强了代码的类型安全性和重用性。本篇文章将深入探讨Java泛型的发展历程、核心概念以及其在实际开发中的应用。 1. **发展...
本文将深入探讨Java泛型类型擦除的概念,并介绍在类型擦除后,为了保持泛型的安全性和便利性,Java设计者所采取的一些补偿机制。 1. **类型擦除**: - 在编译期间,所有的泛型类型信息都会被替换为它们的实际类型...