java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。本站提供基于Java框架struts,spring,hibernate等的桌面应用、web交互及移动终端的开发技巧与资料

保持永久学习的心态,将成就一个优秀的你,来 继续搞起java知识。

/**
      * 泛型定义
      * 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。
      *
      * 泛型的规则
      * 1、泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。
      * 2、同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。
      * 3、泛型的类型参数可以有多个。
      * 4、泛型的参数类型还可以是通配符类型。例如Class<?> classType = Class.forName("java.lang.String");
      * 5、泛型有通配符上限与通配符下限,例如:
      *  (1):public class Demo<T extends Comparable & Serializable> {}。// T类型就可以用Comparable声明的方法和Seriablizable所拥有的特性了
      *  (2):还可以向上限制,如<? super Double>,表示类型只能接受Double及其上层父类类型,如Number、Object类型的实例。
      *  习惯上称为&ldquo;有界类型&rdquo;。
      *  
      */

例子:

private static  <T> T getObject(Class<T> o) throws Exception{//定义了一个泛型方法
         T t=o.newInstance();
         return t;
     }
 
     static class Book<M>{//定义了一个泛型类
         private M name;
 
         public M getName() {
             return name;
         }
 
         public void setName(M name) {
             this.name = name;
         }
     }
public static void main(String[] args) throws  Exception {
         Book<String> b=new Book<String>();
         b.setName("a");
         Book<Integer> b1=new Book<Integer>();
         b1.setName(2);
         System.out.println(b.getName());
         System.out.println(b.getClass()==b1.getClass());
 
     }

运行结果为true.

泛型常见什么T、K、V、E这种符号是参数的形式参数,自己也可以定义成什么M、N之类的。符号?使用是在当我们类型不能确定时使用,也就是通配符。

要多学习。。。。。。

因为水平有限,难免有疏忽或者不准确的地方,希望大家能够直接指出来,我会及时改正。一切为了知识的分享。

后续会有更多的精彩的内容分享给大家。