Java基础学习——泛型

Posted CosmosbipinnatusCav

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础学习——泛型相关的知识,希望对你有一定的参考价值。

一、泛型方法

 1 /**
 2 
 3 自定义泛型:自定义泛型可以理解为是一个数据类型的占位符,或者理解为是一个数据类型的变量。
 4 
 5 泛型方法:
 6 泛型方法的自定义格式:修饰符<声明自定义泛型>返回值类型    函数名称(形参列表)
 7 在自定义泛型方法上泛型的具体类型是调用该方法的时候传入参数的类型所确定的
 8 
 9  */
10 public class demo1 {
11     public <T>T printf (T t){
12         return t;
13     }
14     public static void main(String[] args) {
15         demo1 demo1 = new demo1();
16         Integer integer = demo1.printf(100);
17         String string = demo1.printf("wz");
18         System.out.println(string);
19         System.out.println(integer);
20     }
21 }

二、泛型类

 1 package cn.itcast.generic;
 2 /**
 3  * 在类上自定义泛型 如果创建该类的对象时, 没有指定泛型的具体类型 那么默认的是object类型
 4  * 在类上自定义的泛型 具体的数据类型是在创建对象的时候指定的
 5  * 
 6  */
 7 public class demo2 {
 8     public static void main(String[] args) {
 9         MyList<String > myList = new MyList();
10         myList.add("add");
11 //        myList.add(123);
12     }
13 }
14 
15 class MyList<T>{
16     //创建对象的时候不能直接用泛型直接创建
17     //T[] arr = new T[10];
18     Object[] arr = new Object[10];
19     int index = 0;
20     public MyList() {
21         
22     }
23     public void add(T oT){
24         arr[index++] = oT;
25         
26     }
27 }

 三、泛型接口

 1 /**
 2 
 3 泛型接口:
 4 
 5 泛型接口的定义格式:interface 接口名 <声明自定义的泛型>{}
 6 在接口上自定义泛型注意事项:
 7 1 在接口上自定义泛型 具体的数据类型是 在实现接口的时候 指定的。
 8 2 如果接口自定义了泛型 在实现该接口的时候没有指定数据类型 那么该接口默认 是object类型
 9 
10  如果
11  */
12 
13 interface GenericDao<T>{
14     public void add(T t);
15     
16     public void remove(T t);
17 }
18 
19 public class demo3 implements GenericDao<String >{
20 
21     @Override
22     public void add(String t) {
23         // TODO Auto-generated method stub
24         
25     }
26 
27     @Override
28     public void remove(String t) {
29         // TODO Auto-generated method stub
30         
31     }
32 }
33 class demo4 implements GenericDao{
34 
35     @Override
36     public void add(Object t) {
37         // TODO Auto-generated method stub
38     }
39 
40     @Override
41     public void remove(Object t) {
42         // TODO Auto-generated method stub
43     }
44 }

 三、泛型接口

 1 /**
 2 
 3 泛型接口:
 4 
 5 泛型接口的定义格式:interface 接口名 <声明自定义的泛型>{}
 6 在接口上自定义泛型注意事项:
 7 1 在接口上自定义泛型 具体的数据类型是 在实现接口的时候 指定的。
 8 2 如果接口自定义了泛型 在实现该接口的时候没有指定数据类型 那么该接口默认 是object类型
 9 
10  如果
11  */
12 
13 interface GenericDao<T>{
14     public void add(T t);
15     
16     public void remove(T t);
17 }
18 
19 public class demo3 implements GenericDao<String >{
20 
21     @Override
22     public void add(String t) {
23         // TODO Auto-generated method stub
24         
25     }
26 
27     @Override
28     public void remove(String t) {
29         // TODO Auto-generated method stub
30         
31     }
32 }
33 class demo4 implements GenericDao{
34 
35     @Override
36     public void add(Object t) {
37         // TODO Auto-generated method stub
38     }
39 
40     @Override
41     public void remove(Object t) {
42         // TODO Auto-generated method stub
43     }
44 }

 

以上是关于Java基础学习——泛型的主要内容,如果未能解决你的问题,请参考以下文章

尚硅谷_Java零基础教程(泛型generics)-- 学习笔记

201621123062《java程序设计》第九周作业总结

201621123037 《Java程序设计》第9周学习总结

操作 Java 泛型:泛型在继承方面体现与通配符使用

Java 基础语法Java 的泛型和包装类

Java程序员必备基础:泛型解析