• 泛型


    泛型

    Java泛型设计原则:只要在编译时期没有出现警告,那么运行时期就不会出现ClassCastException异常

    泛型是提供给javac编译器使用的,它用于限定集合的输入类型,让编译器在源代码级别上,即挡住向集合中插入非法数据。但编译器编译完带有泛形的java程序后,生成的class文件中将不再带有泛形信息,以此使程序运行效率不受到影响,这个过程称之为“擦除”。

    泛型类

    泛型类就是把泛型定义在类上,用户使用该类的时候,才把类型明确下来….这样的话,用户明确了什么类型,该类就代表着什么类型…用户在使用的时候就不用担心强转的问题,运行时转换异常的问题了。

    // <T> 表明这是一个泛型类
    public class ObjTool<T> {
        public T obj;
        public T getObj() {
            return obj;
        }
        public void setObj(T obj) {
            this.obj = obj;
        }
    }

    泛型方法

    定义泛型方法….泛型是先定义后使用的

    class ObjTool{
        // <T> 表明这是一个泛型方法
            public <T> T getT(T t){
                return t;
            }
            public <T> void print(T t){
                System.out.println(t);
            }
        }

    泛型接口

    // <T> 表明这是一个泛型接口
    public interface Inter<T> {
        public abstract void show(T t);
    
    }
    • 实现类的要是重写父类的方法,返回值的类型是要和父类一样的!

    • 类上声明的泛形只对非静态成员有效

    类型通配符

    泛型中的<Object>并不是像以前那样有继承关系的,也就是说List<Object>List<String>是毫无关系的,所以需要有通配符代表所有类型

    ?号通配符表示可以匹配任意类型,任意的Java类都可以匹配…..

    当我们使用?号通配符的时候:就只能调对象与类型无关的方法,不能调用对象与类型有关的方法

    设定通配符上限

    List<? extends Number> List集合装载的元素只能是Number的子类或自身

    设定通配符下限

    <? super Type> 传递进来的只能是Type或Type的父类

    无论是设定通配符上限还是下限,都是不能操作与对象有关的方法,只要涉及到了通配符,它的类型都是不确定的!

     

  • 相关阅读:
    What difference between sharepoint web parts and User Controls?
    Backup and Restore in SharePoint 2010
    AJAX 工作原理
    What difference between site definition and site templates?
    Webpart 通信:通过Web Part Connection 在Web Part 之间传递数据(一)
    如何设置zencart能使网店更安全?
    Win7 64bit下安装Moss2010问题总结
    SharePoint配置和自定义Content Query Web Part
    html 自动换行
    ASP.NET 包含几大对象
  • 原文地址:https://www.cnblogs.com/yjh1995/p/13514559.html
Copyright © 2020-2023  润新知