`

j2se-----泛型

    博客分类:
  • J2SE
阅读更多
ArrayList<E>  这个E是什么?

这个E是在定义的时候用的,称为类型变量或类型参数

ArrayList<String>称作参数化类型
ArrayList<String>中的String称作类型参数的实例或者叫实际类型参数
这里的<>读做 typeof


printMethod(List<?> list);//这里是什么意思
意思是:这个集合是一个任意定义了泛型的结合...?是通配符,匹配任意的一种泛型
但是如果我这样写可以吗?
printMethod(List<?> list){   //这种事通配符方案
   list.add(1);
   list.size();
}

<T> void  printMethod(List<T> list,T o){   //这种是泛型方法
   list.add(o);  //这个可以用了
   list.size();
}

注意,上面是编译不会通过的,因为根本就不知道list到底是那种泛型,所以编译器是不会让你在这个list里面乱加东西的,但是list.size()可以用,因为这个方法与类型无关

List<? extends Number>  这是限定通配符,限定通配符的上边界。。。
List<? super Number>这是限定通配符的下边界,也就是?要超过Number,最低只能是Number


定义泛型:

public <T> void save(T bean){
				
}  //注意前面的<T>是对某种特定类型的泛型的声明,所以前面尖括号里面可以写任意字符

写成下面是一样的
public <A> void save(A bean){}

1.编写一个方法,把Object类型转换为其他类型


public static <T> T convert(Object o){   //这种是泛型方法,不是通配符方案
    return (T)obj;
}

使用: 
Object o = "aaa"
 String x = convert(o);

注意这里类型转换时根据左边需要赋值给谁就转换成谁


2.定义一个方法,把任意参数类型的集合中的数据安全的复制到相应类型的数组中。

public <T> void copy(Collection<T> dest ,T src){//这里的T有传播性,由Collection<T> 确定
}

public <T> void copy(T dest ,T src){  //这两个T会取他们共同的父类
}

public <T> T copy(T dest ,T src){  //这两个T由返回值确定}


泛型类型。。。。。。使得方法有统一的泛型

public class GenericDao<E>{
      public void add(E x){
      }

      public E findById(int id){
      }

      public void delete(E o){}
    
      public void delete(int id){}

     public Set<E> findByConditions(String where){
          return null;
     }
}
注意:静态方法不能用泛型类型,但是可以用泛型方法

分享到:
评论

相关推荐

    J2SE-Examples:一些核心 Java 代码示例

    这些示例将展示如何创建、操作和遍历集合,以及如何使用泛型来确保类型安全。例如,你可以看到如何添加元素、删除元素、查找元素,以及如何实现集合排序和比较。 2. **I/O**:Java的I/O(输入/输出)库提供了处理...

    J2SE 1.3,1.4,1.5,1.6,1.7,1.8 API.zip

    3. J2SE 1.5 (Java 5.0) API: 重大更新,引入了泛型、枚举类型、可变参数、自动装箱与拆箱、增强的for循环(foreach)、注解(Annotation)等新特性。还引入了类型安全的集合接口,如List,Set和Map, V&gt;,提高了代码...

    j2se1.5中文api

    J2SE 1.5引入了泛型,这是一种类型安全机制,允许在编译时检查类型。泛型可以防止在集合操作中出现ClassCastException,并提高了代码的可读性和可维护性。例如,ArrayList表示一个只包含字符串的列表,编译器会确保...

    j2se练习代码 Java学习资料

    10. **泛型**:学习如何使用泛型来提高代码的类型安全性和重用性。 11. **枚举和注解**:理解枚举类型及其在程序中的应用,以及注解的作用和自定义注解的创建。 12. **设计模式**:如单例、工厂、装饰器、代理等...

    J2SE 1.5版本的新特性一览

     到了2003的年末,J2SE1.5的beta版本就将发布了。这次发布和现在已经发布的J2SE1.4的两个更新1.4.1和1.4.2都如2003年的JavaOne大会预期的发布。如果你没有参加这次大会,或者想重新回顾一下,那么下面就是这次大会...

    J2SE技术总结-Java学习精华教程-电子书

    定义泛型类 .....注解(Annotation) ..........概述 ..........注解的定义/使用/解析 .....I/O_体系 ..........认识IO ..........Java中的IO .....I/O_BIO ..........I/O流对象与使用 ..........文件相关类的使用 ......

    java-j2se.rar_j2se

    Java J2SE(Java Standard Edition)是Java平台的核心部分,主要针对桌面应用和服务器端开发。J2SE提供了丰富的API和工具,使得开发者能够构建健壮、可移植、多线程和安全的软件。本压缩包文件“java-j2se.rar_j2se...

    Java-J2SE学习笔记

    10. **泛型**: - 提高代码类型安全性,减少类型转换,提供更好的编译期错误检查。 这些只是Java-J2SE学习笔记中的一部分重点内容,实际的学习过程中还需要对每个知识点进行深入理解和实践,以确保对Java编程有...

    J2SE 5_0中的泛型的内容

    泛型 泛型 泛型泛型泛型泛型泛型泛型泛型泛型泛型泛型泛型 泛型泛型泛型泛型泛型泛型泛型泛型泛型泛型泛型

    J2SE学习代码

    Java标准版(J2SE,Java 2 Platform Standard Edition)是Java开发平台的一个核心组件,主要面向桌面应用和服务器端应用程序开发。它包含了Java运行环境、基础类库以及开发工具,是Java程序员进行编程的基础。在J2SE...

    J2SE基础知识大全

    Java 2 Platform, Standard Edition(J2SE)是Java平台的核心组成部分,主要用于桌面应用程序的开发。J2SE基础知识是每一个Java开发者必须掌握的核心技能。以下将详细阐述J2SE中的关键概念和技术。 1. **Java语言...

    java 小笔记--对于J2SE的重点一个具体总结

    Java小笔记——深入理解J2SE中的泛型与封装 在Java编程中,J2SE(Java Standard Edition)是核心部分,提供了丰富的API和功能。本文将重点讨论J2SE中的一个重要特性——泛型(Generics),以及封装的概念。泛型是...

    J2SE常见面试题

    - **泛型**:泛型的作用、限制和通配符的使用。 5. **多线程** - **Thread类与Runnable接口**:创建线程的两种方式。 - **线程状态**:新建、运行、阻塞、等待、结束等状态的理解。 - **同步机制**:...

    J2SE基础源代码

    Java Standard Edition(J2SE)是Java平台的核心部分,它为开发和运行桌面应用程序、服务器应用程序和嵌入式系统提供了基础。J2SE包含了Java语言的语法、类库以及运行时环境,使得开发者能够创建可移植性强、安全性...

    J2SE各个版本帮助文档

    - **J2SE 5.0**:重命名了版本号,从1.5开始,引入了泛型、枚举、可变参数、自动装箱/拆箱以及注解等语言特性。 - **Java SE 6**:加强了GUI、数据库连接池、Web服务支持,并引入了JSR 166(并发工具包)。 - **...

    Java集合框架及泛型

    泛型则是Java在J2SE 5.0版本引入的一个特性,极大地提高了代码的类型安全性和可读性。下面我们将深入探讨这两个主题。 首先,集合框架包括接口(如List、Set和Queue)和实现这些接口的具体类(如ArrayList、...

    Java-J2SE学习笔记(例子)

    9. **泛型**:理解泛型的用途,如增加代码类型安全性和重用性,以及在类、接口和方法中的泛型使用。 10. **枚举与注解**:掌握枚举类型的应用,以及自定义注解及其处理器。 11. **JNI(Java Native Interface)**:...

    面向后台,j2se部分都是基础,主要学习: 面向对-Java-Summary-of-Basic-Learning.zip

    - 对象数组和泛型:存储和操作对象的数组,泛型提供类型安全。 - List、Set和Map接口:ArrayList、LinkedList、HashSet、HashMap等实现类的使用。 - 集合的操作:添加、删除、查找元素,迭代器的使用。 4. **...

Global site tag (gtag.js) - Google Analytics