zoukankan      html  css  js  c++  java
  • javaweb_base

    回顾第一次基础加强

    1. 反射
    有一个字符串,它是一个类名称,我们可以使用反射来创建这个类的对象!
    有一个字符串,它是一个方法名称,我们可以使用反射来调用这个方法!

    2. 枚举
    枚举是一种多例模式!你学过单例就可以理解多例!一个类有固定的实例个数!

    1) 枚举的格式
    关键字不是:class、interface,它是enum
    enum 名称{
    选项1,选项2....;//如果在枚举后还有其他内容,那么必须给出分号,如果没有内容了,可以不给出分号。
    }
    2) 枚举类都有一个共同的父类,Enum

    -------------------------

    泛型

    1. 把运行时的一部分ClassCastException异常,转移到编译时!
    2. 省去了一部分的强转的代码!
    3. 如何来写一个泛型类!
    class A<T> {
    private T t;
    public T get() {}
    public void set(T t) {}
    }
    4. 如何来写一个泛型方法
    特点:返回值、参数中都会使用T(泛型)
    调用时为ts指定类型之后,会隐式为T赋值!String[] strs = {...}; get(str);
    显式赋值:MyClass.<String>get(strs)
    class MyClass {
    public static <T> T get(T[] ts) {//返回数组中中间元素的值
    return ts[ts.length/2];
    }
    }

    ============================

    1. 泛型类的子类,以及泛型接口的实现类怎么写!
    * 父类是泛型的,但子类不一定是泛型的
    * 一般子类都需要给父类的泛型赋值!
    > 子类不是泛型类,为父类的泛型赋值为类型常量
    > 子类是泛型类,为父类的泛型赋值为自己的泛型

    class A<T> {}
    class AA1 extends A<String> {
    }

    class AA2<E> extends A<E> {
    }


    2. 泛型中的通配符
    1). 泛型是假的,因为在JVM中泛型已经被擦除了!
    2). 泛型就出现了引用的泛型,与new一边的泛型必须相同,例如:List<Object> list = new List<String>()这是不行的!
    3). 因为2)的问题,导致方法不通用!我们写一个方法,参数为List<Object>,但是因为泛型是假的原因,所以不能使用List<String>来调用!
    4). 使用通配符来处理方法的通用性问题。
    > 无界通配符<?>:所有泛型方法都作废
    > 子类通配符<? extends Xxx>:返回值为泛型的方法可用!
    > 父类通配符<? super Xxx>:参数为泛型的方法可用!

    注意:通配符只能出现在引用一端,而创建对象时,不能使用通配符!new ArrayList<?>(),不行!
    通配符大多都出现在:方法的形式参数

    class List {
    addAll(Collection<? extends E> c)
    }

    List<Number> list = new ArrayList<Number>();
    List<Integer> intList = ...();

    list.addAll(intList);

    3. 反射与泛型之间有什么关系!

  • 相关阅读:
    [LeetCode] Insert Interval
    java 可变參数
    谈谈单元測试之(二):測试工具 JUnit 3
    我的csdn博客搬家了
    leetcode 229: Majority Element II
    向MapReduce转换:生成用户向量
    《31天成为IT服务达人》最新文件夹
    SD卡读写之FileNotFoundException: /storage/emulated/0object.txt: open failed: ENOENT (No such file or dir
    当写烂代码的人离职之后....
    JavaSE Map的使用
  • 原文地址:https://www.cnblogs.com/skyzcx520/p/3801645.html
Copyright © 2011-2022 走看看