泛型的用法

作者: 涛涛123759 | 来源:发表于2016-10-11 13:17 被阅读41次

一、泛型方法
1、函数的参数是泛型
下面是定义泛型方法的规则:
所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前(在下面例子中的<E>)。
每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。
类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。
泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型,不能是原始类型(像int,double,char的等)。

 public static < E > void printArray( E[] inputArray ) {
  // 输出数组元素  
 for ( E element : inputArray ){ 
           System.out.printf( "%s ", element );
 } 
System.out.println();
 }

2、函数的返回值是泛型

第一种:

 public static <T extends CommonService> T getService(Class<T> clazz) {        
        T service = (T) serviceMap.get(clazz.getName());       
        if (service == null) {            
                service = (T)   ServiceLocator.getService(clazz.getName());            
               serviceMap.put(clazz.getName(), service);      
        }      
        return service;   
}

第二种:

  public static <T> T getService(Class<? extends CommonService> clazz) {       
         T service = (T) serviceMap.get(clazz.getName());        
         if (service == null) {           
                  service = (T) ServiceLocator.getService(clazz.getName());          
                  serviceMap.put(clazz.getName(), service);     
         }        
        return service;   
 }

第一种泛型方法:返回值和参数值的类型是一致,推荐使用;
第二种泛型方法:返回值和参数值的类型不是一致,请谨慎或避免使用。

二、泛型类

泛型类的声明和非泛型类的声明类似,除了在类名后面添加了类型参数声明部分。和泛型方法一样,泛型类的类型参数声明部分也包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。因为他们接受一个或多个参数,这些类被称为参数化的类或参数化的类型。

 public class Box<T> { 
        private T t;
        public void add(T t) { 
                this.t = t;
        } 

     public T get() { 
             return t;
     } 
 }

相关文章

  • kotlin 泛型

    一:泛型用法 二:泛型约束

  • 泛型 & 注解 & Log4J日志组件

    掌握的知识 : 基本用法、泛型擦除、泛型类/泛型方法/泛型接口、泛型关键字、反射泛型(案例) 泛型 概述 : 泛型...

  • [iOS] 泛型ObjectType 协变__covariant

    一.泛型作用 二.泛型用法: 1.泛型声明:在声明类的时候,在类的后面<泛型名称> 2.使用泛型 类型<限制类型>...

  • iOS-关键字-泛型ObjectType 协变__covaria

    一.泛型作用 二.泛型用法: 1.泛型声明:在声明类的时候,在类的后面<泛型名称> //第一步 声明泛型 @int...

  • 泛型

    分别用几个demo说明一下泛型的用法。 1、 一个泛型变量 2、 两个泛型变量 3、 数组泛型 4、 集合泛型 5...

  • Swift — 泛型(Generics)

    Swift — 泛型(Generics) [TOC] 本文将介绍泛型的一些用法、关联类型、where语句,以及对泛...

  • 泛型(iOS_9 新特性)

    作用:限制类型 为什么退出泛型:迎合swift 泛型的作用: 限制类型 提高代码的规范,减少沟通的成本 泛型的用法...

  • 泛型的用法

    一、泛型方法1、函数的参数是泛型下面是定义泛型方法的规则:所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔)...

  • 我的Kotlin 学习之路(七)Kotlin之泛型、泛型约束、协

    一、泛型及泛型约束 kotlin中的泛型,和java中思维大体是相同的,但又有些区别 用法和java没什么两样。。...

  • Java泛型基础(一)

    本文首发于个人网站:Java中的泛型(一) 本文主要介绍Java泛型的基本知识,包括目的、泛型类的基本用法和场景应...

网友评论

    本文标题:泛型的用法

    本文链接:https://www.haomeiwen.com/subject/zmqbyttx.html