[Java]泛型,枚举与注解

#1.泛型

  1.对象实例化时不指定泛型,默认为:Object。 

  2.泛型不同的引用不能相互赋值。 

  3.加入集合中的对象类型必须与指定的泛型类型一致。 

  4.静态方法中不能使用类的泛型。 

  5.如果泛型类是一个接口或抽象类,则不可创建泛型类的对象。 

  6.不能在catch中使用泛型 

  7.从泛型类派生子类,泛型类型需具体化 

  4.泛型与继承的关系 

  A类是B类的子类,G是带泛型声明的类或接口。那么G(A)不是G(B)的子类! 

  5.通配符:? 

  A类是B类的子类,G是带泛型声明的类或接口。则G(?) 是G(A)、G(B)的父类! 

  ①以List(?)为例,能读取其中的数据。因为不管存储的是什么类型的元素,其一定是Object类的或其子类的。 

  ①以List(?)为例,不可以向其中写入数据。因为没有指明可以存放到其中的元素的类型!唯一例外的是:null 

  6*.  List(? extends A) :可以将List(A)的对象或List(B)的对象赋给List(? extends A)。其中B 是A的子类 

  ? super A:可以将List(A)的对象或List(B)的对象赋给List(? extends A)。其中B 是A的父类 

  #### 8.枚举与注解

  一、枚举类

  1.如何自定义枚举类。 枚举类:类的对象是有限个的,确定的。 

  1.1 私有化类的构造器,保证不能在类的外部创建其对象 

  1.2 在类的内部创建枚举类的实例。声明为:public static final 

  1.3 若类有属性,那么属性声明为:private final 。此属性在构造器中赋值。 

  2.使用enum关键字定义枚举类 

  2.1其中常用的方法:values()  valueOf(String name); 

  2.2枚举类如何实现接口: 

  ①让类实现此接口,类的对象共享同一套接口的抽象方法的实现。 

  ①让类的每一个对象都去实现接口的抽象方法,进而通过类的对象调用被重写的抽象方法时,执行的效果不同 

  二、注解Annotation 

  1.JDK提供的常用的三个注解 

  @Override: 限定重写父类方法, 该注释只能用于方法 

  @Deprecated: 用于表示某个程序元素(类, 方法等)已过时 

  @SuppressWarnings: 抑制编译器警告 

  2.如何自定义注解 

  以SuppressWarnings为例进行创建即可: 

  @interface MyAnnotation 

  3.元注解:可以对已有的注解进行解释说明。(对其他注解添加注解)   

  Retention:SOURCE,CLASS(默认),RUNTIME :被修饰的注解的生命周期   

  Target:指明被修饰的注解能用于修饰哪些程序元素   

  Documented:javadoc(Retention必须设置为RUNTIME) 

你可能感兴趣的:([Java]泛型,枚举与注解)