zoukankan      html  css  js  c++  java
  • javase高级技术

    在写案例之前,先简单回顾下泛型的知识

    我们知道,java属于强变量语言,使用变量之前要定义,并且定义一个变量时必须要指明它的数据类型,什么样的数据类型赋给什么样的值。

    所谓“泛型”,就是“宽泛的数据类型”,任意的数据类型。我们用<>来表示。

    可以用在类上public class a<T>

    可以用在接口上public interface  a<T>

    可以用在方法的返回值上 public <T> T a();

    泛型类在定义的时候可以不指定类型,但是在使用的时候必须制定类型,也就是new的时候

    泛型通配符

    <T extends Object>  只能是Object类以及他的子类

    <T superObject>  只能是Object类以及他的父类

    ============分割线===================

    案例 在参数定义int的集合中,添加String 元素

    List<Integer> list = new ArrayList<Integer>() 中添加字符串

    	@Test
    	public void test() throws Exception, NoSuchMethodException
    	{
    		List<Integer> list = new ArrayList<Integer>();
    		Class  listClass= list.getClass();
    		Method addMethod = listClass.getMethod("add", Object.class);
    		addMethod.invoke(list,"aaaaa");
    		System.out.println(list.get(0));  //输出为aaaaaa  测试成功 查看源码发现add的底层添加的是Object
    	}
    

      

     总结: java中的泛型其实是给编译器看的,编译过程中会有一个【泛型擦除】的过程,在字节码中已经看不到定义的类型了。

  • 相关阅读:
    关键字--static
    java注解
    服务器、应用服务器、web服务器、容器
    进程和线程
    Tomcat7目录结构详解(非常详细)
    HTML小练习
    HTML学习笔记
    javaoo总结二
    javaoo总结一
    python核心-类-1
  • 原文地址:https://www.cnblogs.com/javabigdata/p/5615756.html
Copyright © 2011-2022 走看看