您的位置:首页 > 编程语言 > Java开发

JAVA开发-泛型实例

2020-04-17 23:18 381 查看

JAVA开发过程中经常会涉及到跟踪源码或查看架构师核心代码的活动。在核心代码或源码中常见有<T>,<E>,<K,V>,Class<?>,<? extends T> <? super T> 相关的代码。看起来十分高大上,又不容易看懂,可能会吓退一些同学。在此做一次整理,并附相应代码供调试理解。

<T>,<E>,<K,V> 首先这些实际都是泛型中的占位符,也可以换成A-Z都是可以的。不是一定要写成这些,也可以A,B,C都是可以的。不过约定俗成的东西方便大家理解,尽量不擅自改动。

在贴录代码之前先说明一下相关类的关系
TypeClass类与TypeClass1是并行的两个演示bean,TypeClassA extends TypeClass, TypeClassB extends TypeClassA

这是基础的关系,下附相关代码
package generic.bean;

/**

  • 测试Bean类
  • @author zhousjmas@hotmail.com
  • */
    public class TypeClass {

    private static String key ;

    private static String value;

    static {
    key = "key-TypeClass";
    value = "value-TypeClass";
    name = "name-TypeClass";
    }

    public int num ;

    private static String name;

    public void getKey() {

    System.out.println("key:"+key);

    }

    public void getValue() {

    System.out.println("value:"+value);

    }

    public void getName() {

    System.out.println("name:"+name);

    }

}

package generic.bean;

public class TypeClass1 {

private static String key ;

private static String value;

static {
key = "key-TypeClass1";
value = "value-TypeClass1";
name = "name-TypeClass1";
}

public int num ;

private static String name;

public void getKey() {

System.out.println("key:"+key);
}

public void getValue() {

System.out.println("value:"+value);
}

public void getName() {

System.out.println("name:"+name);
}

}

package generic.bean;

/**

  • 测试Bean类,继承TypeClass
  • @author zhousjmas@hotmail.com
  • */
    public class TypeClassA extends TypeClass {

    private String typeClassA ;

    public void getTypeClassA(){

    System.out.println("当前对象类型:"+this.getClass().getSimpleName());

    }

}

package generic.bean;

/**

  • 测试Bean类,继承TypeClassA
  • @author zhousjmas@hotmail.com
  • */
    public class TypeClassB extends TypeClassA {

    private String typeClassB ;

    public void getTypeClassB(){

    System.out.println("当前对象类型:"+this.getClass().getSimpleName());

    }
    }

下边首先是<T>的描述,<T> 主要用来表示类型的泛型,有接口泛型,方法泛型和类的泛型

接口泛型,
package generic.t.interfaces;

/**

  • 泛型接口
  • @author zhousjmas@hotmail.com
  • @param <T>
    */
    public interface IGenericT<T> {

    public T getResult() throws InstantiationException, IllegalAccessException;

}

对接口泛型的一种实现,在实现中指定具体的类,ublic class GenericTIImpl implements IGenericT<TypeClass>

package generic.t.interfaces;

import generic.bean.TypeClass;

/**

[ul]
  • 泛型类实现及测试,指定具体类实现
  • @author zhousjmas@hotmail.com
  • [li] [p]*/[url=https://blog.51cto.com/4890631/mailto:br/>@SuppressWarnings(]br/>@SuppressWarnings("rawtypes")@SuppressWarnings(]br/>@SuppressWarnings("rawtypes")
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: