java泛型学习(1)

简介: java泛型(Generices Type)    --->概念:泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。

java泛型(Generices Type)

   --->概念:泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。

 --->优点:(1)在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常【ClassCastException】,这是一个安全隐患。

      (2)泛型的好处是在编译的时候检查 类型安全,并且所有的 强制转换都是 自动隐式的,提高代码的重用率。
Map m = new HashMap();
m.put("key", "blarg");
String s = (String) m.get("key");//需要进行显示的强制类型转换
View Cod
 泛型字母
T  type表示类型
K V 分别代表键值对中的key,value
E 代表Element
?不确定类型
【泛型类】
泛型只能使用引用类型。
 1 /**
 2  * 
 3 ----->声明类时使用泛型
 4 ----->泛型不只能使用引用类型
 5 ----->泛型声明时不能使用在静态属性,静态方法上
 6  */
 7 public class Student<T1, T2> {
 8     private T1 javase;
 9     private T2 oracle;
10     //private static T2 add;会报错的
11     public Student() {
12         super();
13     }
14     public Student(T1 javase, T2 oracle) {
15         super();
16         this.javase = javase;
17         this.oracle = oracle;
18     }
19 
20     public T1 getJavase() {
21         return javase;
22     }
23 
24     public void setJavase(T1 javase) {
25         this.javase = javase;
26     }
27 
28     public T2 getOracle() {
29         return oracle;
30     }
31 
32     public void setOracle(T2 oracle) {
33         this.oracle = oracle;
34     }
35 
36 }
View Code

【泛型接口】

1 /**
2  *(接口中只能定义静态全局变量,抽象方法)
3    接口中泛型字母只能使用在方法中,不能使用在全局常量中
4 
5  */
6 public interface Person<T,T2> {
7     public abstract void Address(T a);
8     public  abstract T2 queryAll();
9 }
View Code

【泛型方法】

 1 /**
 2      * 
 3     *格式----->修饰符 泛型字母 返回值类型 方法名(泛型字母 形参)
 4     *(只能访问对象信息,不能修改对象信息)
 5     ---><T>用在返回值类型
 6     --->也可以用在形参列表上
 7      */
 8     public  <T> void queryList(T a){
 9       
10         System.out.println("Student.queryList()"+a);
11     }
View Code

 

 

相关文章
|
2月前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
97 43
Java学习十六—掌握注解:让编程更简单
|
1月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
2月前
|
存储 SQL 小程序
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
这篇文章详细介绍了Java虚拟机(JVM)的运行时数据区域和JVM指令集,包括程序计数器、虚拟机栈、本地方法栈、直接内存、方法区和堆,以及栈帧的组成部分和执行流程。
39 2
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
|
1月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
2月前
|
Java API
[Java]泛型
本文详细介绍了Java泛型的相关概念和使用方法,包括类型判断、继承泛型类或实现泛型接口、泛型通配符、泛型方法、泛型上下边界、静态方法中使用泛型等内容。作者通过多个示例和测试代码,深入浅出地解释了泛型的原理和应用场景,帮助读者更好地理解和掌握Java泛型的使用技巧。文章还探讨了一些常见的疑惑和误区,如泛型擦除和基本数据类型数组的使用限制。最后,作者强调了泛型在实际开发中的重要性和应用价值。
37 0
[Java]泛型
|
2月前
|
存储 安全 Java
🌱Java零基础 - 泛型详解
【10月更文挑战第7天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
18 1
|
2月前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
58 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
2月前
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
36 2
|
2月前
|
存储 Java 编译器
Java集合定义其泛型
Java集合定义其泛型
19 1
|
2月前
|
存储 算法 Java
带你学习java的数组军队列
带你学习java的数组军队列
37 0