zoukankan      html  css  js  c++  java
  • 泛型

    1.运行环境

    jdk1.8.0_77 Intellij IDEA2018.3 x64

    2.本章目标

    基本的Annotation

    自定义的Annotation

    为注解添加属性

    元注解

    会提取注解信息

    3.Annotation(注解) 概述

    从 JDK 5.0 开始, Java 增加了对元数据(MetaData) 的支持, 也就是 Annotation(注解)

    Annotation 其实就是代码里的特殊标记, 这些标记可以在编译, 类加载, 运行时被读取, 并执行相应的处理. 通过使用 Annotation, 程序员可以在不改变原有逻辑的情况下, 在源文件中嵌入一些补充信息.

    Annotation 可以像修饰符一样被使用, 可用于修饰包,类, 构造器, 方法, 成员变量, 参数, 局部变量,的声明, 这些信息被保存在 Annotation 的 “name=value” 对中.

    Annotation 能被用来为程序元素(类, 方法, 成员变量等) 设置元数据

    4.基本的 Annotation

    使用 Annotation 时要在其前面增加 @ 符号, 并把该 Annotation 当成一个修饰符使用. 用于修饰它支持的程序元素

    三个基本的 Annotation:

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

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

    @SuppressWarnings: 抑制编译器警告.

    5.代码展示

    public class ClassMaxMin {
    public static <W extends Comparable> Pair<W> getMaxAndMin(W [] ary){
    W max = ary[0];
    W min = ary[0];
    for(W t:ary) {
    if(max.compareTo(t)<0)
    max = t;
    if(min.compareTo(t)>0)
    min = t;
    }
    return new Pair<W>(max, min);
    }
    }

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

    public class Pair <W>{
    private W first;
    private W second;

    public W getFirst() {
    return first;
    }

    public void setFirst(W first) {
    this.first = first;
    }

    public W getSecond() {
    return second;
    }

    public void setSecond(W second) {
    this.second = second;
    }

    public Pair(W first, W second) {
    super();
    this.first = first;
    this.second = second;
    }

    public Pair() {
    super();
    }

    public void swap(){
    W w = null;
    w = first;
    first = second;
    second = w;
    }

    @Override
    public String toString() {
    return "Pair [first=" + first + ", second=" + second + "]";
    }

    //静态方法不能访问加注在类上的泛型
    public static <W> void fun(W t){
    System.out.println(t);
    }


    public static <E> void swapAry(E[] ary, int i, int j){
    E temp = null;
    temp = ary[i];
    ary[i] = ary[j];
    ary[j] = temp;
    }
    }

    6.心得

    当你把一件事当成自己生活中必不可少的时候,那么这件事你就用心对待了,就好比学习,如果你只是为了学习而学习,那么你只能说是学习好而不是爱学习。

     

  • 相关阅读:
    【干货分享】嵌入式学习路线公开!(书籍推荐+视频推荐+练手项目)
    test
    pytest学习小结
    pytest运行报错 TypeError: attrib() got an unexpected keyword argument 'convert'
    pytest插件下载网址
    python修改文件内容的3种方法详解
    PermissionError: [Errno 13] Permission denied 如何解决
    Pycharm退出pytest模式(run pytest in模式)
    直流电机驱动电路设计-----学习笔记
    2019年全国大学生电子设计竞赛赛题分享与浅析
  • 原文地址:https://www.cnblogs.com/nanren/p/13585899.html
Copyright © 2011-2022 走看看