JAVA学习笔记(五十六)- 泛型 Generic Types

泛型 Generic Types

import java.util.ArrayList;
import java.util.List;

/*
 * 泛型 Generic Types
 * 集合泛型
 * 类泛型
 * 方法泛型
 */
public class Test01 {
    public static void main(String[] args) {
        // 1.集合泛型,保证集合中元素的类型安全
        List<Integer> nums = new ArrayList<Integer>();
        nums.add(25);
        // nums.add("tom"); //只能添加整型数值

        // 2.类泛型
        Student stu1 = new Student("tom");
        stu1.obj = 25; // Object无法保证类型的安全
        stu1.show();

        //创建泛型类的对象时需要指定具体的数据类型,保证数据安全
        Student2<String> stu2=new Student2<String>("jack");
        //stu2.t=38;
        stu2.show();

        // 3.方法泛型
        print("tom");
        print(20);
        print(13.5);

    }

    public static <T> void print(T t){
        System.out.println(t.getClass());
    }
}

/*
 * 普通的类
 */
class Student {
    Object obj;

    public Student(Object obj) {
        this.obj = obj;
    }

    public void show() {
        System.out.println(obj);
    }
}

/*
 * 泛型类
 */
class Student2<T> {
    T t;

    public Student2(T t) {
        this.t = t;
    }

    public void show(){
        System.out.println(t);
    }
}
时间: 2024-08-05 07:15:31

JAVA学习笔记(五十六)- 泛型 Generic Types的相关文章

JAVA学习笔记(十六)

List接口 查阅API,看List的介绍.有序的 collection(也称为序列).此接口的用户可以对列表中每个元素的插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素.与 set 不同,列表通常允许重复的元素. List接口: 它是一个元素存取有序的集合.例如,存元素的顺序是11.22.33.那么集合中,元素的存储就是按照11.22.33的顺序完成的). 它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理).

JAVA学习笔记(五十)- JDBC Java数据库连接

JDBC操作步骤 /* * JDBC操作步骤 * */ public class Test01 { public static void main(String[] args) { try { //1.加载并注册驱动 Class.forName("com.mysql.jdbc.Driver"); //DriverManager.registerDriver(new com.mysql.jdbc.Driver()); System.out.println("注册驱动成功!&qu

JAVA学习第五十六课 — IO流(十)对象的序列化和反序列化 &amp; RandomAccessFile

操作对象 ObjectInputStream.ObjectOutputStream 被操作的对象需要实现Serializable(标记接口) ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream.可以使用 ObjectInputStream 读取(重构)对象.通过在流中使用文件可以实现对象的持久存储.如果流是网络套接字流,则可以在另一台主机上或另一个进程中重构对象. 对象的默认序列化机制写入的内容是:对象的类,类签名,以及非瞬态和非静态字段的

JAVA学习笔记(五十九)- Socket编程

客户端 import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.UnknownHostException; /* * 客户端 */ public class Client { public static void main(String[] args) throws IOExcep

JAVA学习笔记(五十二)- 开发DAO层的经典实现

StudentDAO接口,定义学生相关的操作 /* * StudentDAO接口,定义学生相关的操作 */ public interface StudentDAO { //添加学生 public void addStudent(Student stu); //删除学生 public void deleteStudent(int id); //修改学生 public void updateStudent(Student stu); //查询所有学生 public List<Student> ge

JAVA学习笔记(三十六)- 文件的拆分和合并

文件的拆分和合并 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.SequenceInputStream; import java.util.Enumeration; import java.util.Vector; /* * 文件的拆分和合并 */ public class

JAVA学习笔记(五十八)- InetAddress类与URL

InetAddress类 /* * InetAddress类   */ public class Test07 {    public static void main(String[] args) throws UnknownHostException {        //获取本机的InetAddress实例          System.out.println("*******获取本机... www.songtaste.com/user/10258631/infowww.songtast

JAVA学习笔记(五十四)- 事务Transaction与批处理

事务Transaction /* * 事务Transaction * JDBC默认开启自动提交事务,需要关闭,才能手动控制事务 * * 默认MySQL存储引擎为My...,其不支持事务处理,修改为InnoDB引擎 * create table 表名( ) engine=InnoDB default charset=utf8; * * InnoDB引擎默认关闭自动事务提交,修改MySQL为自动提交事务 * set autocommit=1; //1表示自动提交,0表示关闭自动提交 * show v

JAVA学习笔记(五十五)- 元数据 MetaData和可滚动的结果集

元数据 Meta Data /* * 元数据 Meta Data */ public class Test03 { Connection conn = null; PreparedStatement pstmt=null; ResultSet rs = null; public void test(){ conn=DBUtil.getConnection(); try { DatabaseMetaData dbmd=conn.getMetaData(); //获取数据库元数据 System.ou