泛型与反射

Posted ╄冷丶夜♂

tags:

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

泛型方法:

你可以写一个泛型方法,该方法在调用时可以接收不同类型的参数。根据传递给泛型方法的参数类型,编译器适当地处理每一个方法调用。

下面是定义泛型方法的规则:

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

实例:

 1 public class GenericMethodTest
 2 {
 3    // 泛型方法 printArray                         
 4    public static < E > void printArray( E[] inputArray )
 5    {
 6       // 输出数组元素            
 7          for ( E element : inputArray ){        
 8             System.out.printf( "%s ", element );
 9          }
10          System.out.println();
11     }
12  
13     public static void main( String args[] )
14     {
15         // 创建不同类型数组: Integer, Double 和 Character
16         Integer[] intArray = { 1, 2, 3, 4, 5 };
17         Double[] doubleArray = { 1.1, 2.2, 3.3, 4.4 };
18         Character[] charArray = { ‘H‘, ‘E‘, ‘L‘, ‘L‘, ‘O‘ };
19  
20         System.out.println( "整型数组元素为:" );
21         printArray( intArray  ); // 传递一个整型数组
22  
23         System.out.println( "\n双精度型数组元素为:" );
24         printArray( doubleArray ); // 传递一个双精度型数组
25  
26         System.out.println( "\n字符型数组元素为:" );
27         printArray( charArray ); // 传递一个字符型数组
28     } 
29 }

 

以上是关于泛型与反射的主要内容,如果未能解决你的问题,请参考以下文章

《Java架构筑基》从Java基础讲起——泛型与反射

泛型与反射:type接口来历及子接口

泛型与反射:type接口来历及子接口

泛型与datatable 转化

泛型与datatable 转化

JavaLearn#(19)反射Class类使用反射创建对象-操作属性-执行方法泛型与反射反射案例