1、如何使用泛型方法

了解什么是泛型看这:泛型是什么 
以下是定义泛型方法的规则:

  1. 声明泛型方法时,在返回类型之前,需要有一个由尖括号(< >)分隔的泛型类型部分。 
    2 . 一个泛型类型,也称为类型参数,是一个标识符,用于指定一个泛型类型的名称。
  2. 类型参数可以用来声明返回类型和充当占位符传递给泛型方法。
  3. 泛型方法的身体与其他方法一样。

例子:

public class GenericMethodTest
{// generic method printArray                        public static < E > void printArray( E[] inputArray ){// Display array elements             for ( E element : inputArray ){       System.out.printf( "%s ", element );}System.out.println();}public static void main( String args[] ){// Create arrays of Integer, Double and CharacterInteger[] intArray = { 1, 2, 3, 4, 5 };Double[] doubleArray = { 1.1, 2.2, 3.3, 4.4 };Character[] charArray = { 'H', 'E', 'L', 'L', 'O' };System.out.println( "Array integerArray contains:" );printArray( intArray  ); // pass an Integer arraySystem.out.println( "
Array doubleArray contains:" );printArray( doubleArray ); // pass a Double arraySystem.out.println( "
Array characterArray contains:" );printArray( charArray ); // pass a Character array}
}

这将产生以下结果: 
Array integerArray contains: 
1 2 3 4 5 6 
Array doubleArray contains: 
1.1 2.2 3.3 4.4 
Array characterArray contains: 
H E L L O

泛型类型还可以被限制,使用extends关键字限制泛型的父类。 
例子:

public class MaximumTest
{// determines the largest of three Comparable objectspublic static <T extends Comparable<T>> T maximum(T x, T y, T z){                     T max = x; // assume x is initially the largest      if ( y.compareTo( max ) > 0 ){max = y; // y is the largest so far}if ( z.compareTo( max ) > 0 ){max = z; // z is the largest now                }return max; // returns the largest object  }public static void main( String args[] ){System.out.printf( "Max of %d, %d and %d is %d",3, 4, 5, maximum( 3, 4, 5 ) );System.out.printf( "Maxm of %.1f,%.1f and %.1f is %.1f",6.6, 8.8, 7.7, maximum( 6.6, 8.8, 7.7 ) );System.out.printf( "Max of %s, %s and %s is %s
","pear","apple", "orange", maximum( "pear", "apple", "orange" ) );}
}

这将产生以下结果: 
Maximum of 3, 4 and 5 is 5 
Maximum of 6.6, 8.8 and 7.7 is 8.8 
Maximum of pear, apple and orange is pear

2、如何使用泛型类/接口

泛型类/接口的声明与非泛型类类似,除了类名后增加了一个泛型类型。 
与泛型方法相比,泛型类的类型参数部分可以用逗号分隔的一个或多个泛型类型。

例子:

public class Box<T> {private T t;public void add(T t) {this.t = t;}public T get() {return t;}public static void main(String[] args) {Box<Integer> integerBox = new Box<Integer>();Box<String> stringBox = new Box<String>();integerBox.add(new Integer(10));stringBox.add(new String("Hello World"));System.out.printf("Integer Value :%d", integerBox.get());System.out.printf("String Value :%s
", stringBox.get());}
}

这将产生以下结果: 
Integer Value :10 
String Value :Hello World

原文地址:http://blog.csdn.net/ooppookid/article/details/51233633

Java千百问_05面向对象(013)_泛型如何使用相关推荐

  1. Java千百问_05面向对象(012)_泛型是什么

    1.什么是泛型 泛型是Java SE 1.5的新特性,泛型即参数化类型,也就是说所操作的数据类型被指定为一个参数.  这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法.  ...

  2. Java千百问_05面向对象(004)_java接口到底是什么

    1.什么是接口 接口(interface)不是一个类,它是抽象方法的集合.一个类实现一个接口,从而继承和实现接口的抽象方法.  抽象方法看这里:java中抽象概念如何体现的 接口的特点如下,先看与类类 ...

  3. Java千百问局部变量、类变量、实例变量有什么区别

    Java千百问局部变量.类变量.实例变量有什么区别 局部变量.类变量.实例变量有什么区别 在聊局部变量.类变量.实例变量有什么区别之前,我们需要了解一下Java变量. 1.Java变量是什么 在数学世 ...

  4. Java千百问_03基本的语法(005)_二进制是如何做位运算的

    点击进入_很多其它_Java千百问 二进制是如何做位运算的 程序中的全部数在计算机内存中都是以二进制的形式储存的.位运算说白了,就是直接对整数在内存中的二进制位进行操作. 其它运算符看这里:java种 ...

  5. Java千百问_07JVM架构(009)_什么是新生代的复制算法

    点击进入_更多_Java千百问 1.什么是新生代的复制算法 了解堆内存看这里:java堆内存是什么样的 了解java垃圾回收看这里:java垃圾回收机制是什么 所谓复制算法(Copying),即将内存 ...

  6. Java千百问_01基本概念(007)_线程的状态有哪些

    点击进入_更多_Java千百问 1.线程的状态有哪些 在java中java.lang.Thread类有一个变量threadStatus,标示了该线程的当前状态,它是一个int类型,但是对应的get方法 ...

  7. Java千百问_07JVM架构(015)_XmnXmsXmxXss有什么区别

    点击进入_更多_Java千百问 1.XmnXmsXmxXss有什么区别 首先,Xmn.Xms.Xmx.Xss都是JVM对内存的配置参数,我们可以根据不同需要区修改这些参数,以达到运行程序的最好效果. ...

  8. Java千百问_01基本概念(012)_Socket是什么

    [点击进入_更多_Java千百问][1] [1]: http://blog.csdn.net/ooppookid/article/category/6134850 ###1.什么是Socket Soc ...

  9. Java千百问_03基本语法(002)_java都有哪些关键字

    java都有哪些关键字 首先我们来看看什么是关键字,关键字的含义. 1.java关键字是什么意思 关键字是电脑语言里事先定义的,有特别意义的特殊标识符,又叫保留字. Java的关键字对Java的编译器 ...

  10. Java千百问_04异常处理(007)_常见的java异常有哪些(非运行时)

    1.常见的java运行时异常有哪些 了解非运行时异常看这里:什么是java中的异常  常见的运行时异常看这里:常见的运行时异常有哪些 我们所说的常见异常是jdk或者其他常用第三方jar中的异常,出现频 ...

最新文章

  1. URL加随机数的作用
  2. 可重入函数与不可重入函数(转)
  3. mysql所有知识点总结_MySQL知识点总结
  4. php 支付宝订单查询_5. PHP接入支付宝单笔订单查询接口
  5. sed 正则表达式【MAC地址】GLPI转换华为交换机MAC格式
  6. Linux记录-CPU指标介绍
  7. Navicat导入TXT到数据库
  8. Docker镜像仓库
  9. 杭州湾跨海大桥视频上云,夯实智慧高速“云基建
  10. Linq GroupJoin 使用
  11. 作者:钱卫宁(1976-),男,华东师范大学计算机科学与软件工程学院教授、博士生导师。...
  12. 74ls90设计十进制计数器电路图_利用555与74ls90制作电子秒表
  13. protocol buffer java_Protocol Buffer Java实例
  14. 5.3 Transformer意境级讲解
  15. ALSA之Codec注册过程
  16. 【编译原理实验】词法分析(Thompson)
  17. 工作人员做好项目协调服务器,项目团队协作做好三件事
  18. java导出excel表格,文件名称汉字话
  19. 如何用手机数据线连接电脑上网?
  20. DAVE4 No source available for “xx() at 0xxxxx“

热门文章

  1. 面向过程与面向对象代码实例对比
  2. 高级GIS-0.整体裁剪
  3. IDL | 实验五 IDL数据可视化
  4. arcgis缓冲区分析(结合案例)-国家边界缓冲区的建立
  5. java继承的性质,浅谈Java三大特性之继承
  6. Redis-01-NoSQL简介及Redis数据库安装
  7. c语言规定棋盘大小的,求数据结构C语言大神们解释下马踏棋盘程序
  8. java 调用mysql存储过程实例_java调用mysql存储过程实例分析
  9. Apache Flink 不止于计算,数仓架构或兴起新一轮变革
  10. 勤能补拙 VS 思考补拙