zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    以证书的方式登录ssh
    JSPatch在MAC下的使用
    sqlite3使用备忘
    iOS模拟器录屏转gif神器
    UINavigationController + UIScrollView组合,视图尺寸的设置探秘(三)
    UINavigationController + UIScrollView组合,视图尺寸的设置探秘(二)
    UINavigationController + UIScrollView组合,视图尺寸的设置探秘(一)
    内容可循环重用的ScrollView
    关于Logger
    Git入门操作
  • 原文地址:https://www.cnblogs.com/wy0904/p/7466977.html
Copyright © 2011-2022 走看看