/**

* @author Rollen-Holt 使用泛型

*/

class hello {

hello(){

}

public T getName(){

return name;

}

public void setName(T name){

this.name = name;

}

public V getAge(){

return age;

}

public void setAge(V age){

this.age = age;

}

private T name;

private V age;

public static void main(String[] args){

hello he = new hello();

he.setAge(10);

he.setName("Rollen Holt");

System.out.println(he.getName() + " " + he.getAge());

}

}

/**

* @author Rollen-Holt 泛型类的构造方法定义

*/

class hello {

hello(T name, V age){

this.age = age;

this.name = name;

}

public T getName(){

return name;

}

public V getAge(){

return age;

}

private T name;

private V age;

public static void main(String[] args){

hello he=new hello("Rollen",12);

System.out.println(he.getName()+" "+he.getAge());

}

}

/**

* @author Rollen-Holt 使用通配符

*/

class info {

info(T name){

this.name = name;

}

private T name;

}

class hello{

public static void function(info> temp){

System.out.println("内容: "+temp);

}

public static void main(String[] args){

info demo=new info("Rollen");

function(demo);

}

}

/**

* @author Rollen-Holt 泛型上限

*/

class info{

info(T age){

this.age=age;

}

private T age;

}

class hello{

public static void function(info extends Number> temp){

System.out.println("内容"+ temp);

}

public static void main(String[] args){

info demo=new info(1);

function(demo);

}

}

/**

* @author Rollen-Holt 泛型下限

*/

class info{

info(T age){

this.age=age;

}

private T age;

}

class hello{

public static void function(info super String> temp){

System.out.println("内容"+ temp);

}

public static void main(String[] args){

// 此处只能使用String 或者Object

info demo=new info("Rollen");

function(demo);

}

}

/**

* @author Rollen-Holt 泛型和子类继承的限制

*/

class info{

}

class hello{

public static void main(String[] args){

info demo1=new info();

info demo2=new info();

//demo2=demo1; 此处错误

}

}

/**

* 上面的例子说明,一个类的子类可以通过多态性被其父类实例化

* 但是在泛型操作中,子类的泛型类型是无法被其父类的泛型类型实例化的。

*/

如果允许上面的条语句的话,会出现:

Exception in thread "main" java.lang.Error: Unresolved compilation problem:

Type mismatch: cannot convert from info to info

at hello.main(hello.java:12)

泛型接口的两种实现:

/**

* @author Rollen-Holt 泛型接口的实现1

*/

interface info {

public void say();

}

// 直接在子类之后声明泛型

class hello implements info{

public static void main(String[] args){

info demo = new hello();

demo.say();

}

public void say(){

System.out.println("hello");

}

}

/**

* @author Rollen-Holt 泛型接口的实现2

*/

interface info {

public void say();

}

// 在子类实现的接口中明确给出泛型类型

class hello implements info{

public static void main(String[] args){

info demo = new hello();

demo.say();

}

public void say(){

System.out.println("hello");

}

}

/**

* @author Rollen-Holt 使用泛型通一传入参数的类型

*/

class info {

private T var;

public T getVar(){

return var;

}

public void setVar(T var){

this.var = var;

}

public String toString(){

return this.var.toString();

}

}

class hello{

public static void main(String[] args){

info demo1=new info();

info demo2=new info();

demo1.setVar("Rollen");

demo2.setVar("Holt");

printAdd(demo1, demo2);

}

// 此处传递的都是同一个String类型的

public static void printAdd(info demo1, info demo2){

System.out.println(demo1.getVar()+""+demo2.getVar());

}

}

否则的话如下所示:出现错误:

/**

* @author Rollen-Holt 使用泛型通一传入参数的类型

*/

class info {

private T var;

public T getVar(){

return var;

}

public void setVar(T var){

this.var = var;

}

public String toString(){

return this.var.toString();

}

}

class hello{

public static void main(String[] args){

info demo1=new info();

info demo2=new info();

demo1.setVar("Rollen");

demo2.setVar(30);

//此处调用错误

printAdd(demo1, demo2);

}

// 此处传递的都是同一个String类型的

public static void printAdd(info demo1, info demo2){

System.out.println(demo1.getVar()+""+demo2.getVar());

}

}

Exception in thread "main" java.lang.Error: Unresolved compilation problem:

The method printAdd(info, info) in the type hello is not applicable for the arguments (info, info)

at hello.main(hello.java:26)

java 泛型例子_java中的泛型的一些常见例子相关推荐

  1. java 泛型机制_java中的泛型机制

    泛型 这种语法机制,只在程序编译阶段起作用,只是给编译器参考的.(运行阶段泛型没用) 使用了泛型好处是什么? 第一:集合中存储的元素类型统一. 第二:从集合中取出的元素类型是泛型指定的类型,不需要进行 ...

  2. java 文件通配符_Java中泛型通配符的使用方法示例

    本文实例讲述了Java中泛型通配符的使用方法.分享给大家供大家参考,具体如下: 一 点睛 引入通配符可以在泛型实例化时更加灵活地控制,也可以在方法中控制方法的参数. 语法如下: 泛型类名 extend ...

  3. java中什么泛型_java中的泛型(一)

    在java中我们定义接口其实定义的是这个类的功能,在很多时候我们并不关心这个类的类型而是这个类的能力.泛型的出现让我们的代码和代码所能操作的类型不在绑定在一起,不仅可以复用代码降低耦合还可以提高代码的 ...

  4. java中什么泛型_Java中的泛型

    1.为什么要使用泛型? (1)适用于多种数据类型执行相同的代码,利于封装(如,封装Base类.统一的适用于recycleview的adapter等) (2)泛型中的类型在使用的时候,直接指定即可,不需 ...

  5. java基本数据类型泛型_Java中的泛型

    泛型规范在JDK1.5版本中被添加,使用泛型机制编写的代码比起随意使用Object变量然后再进行强制类型转换的代码具有更高的安全性和可读性,同时也更为简洁.泛型对于集合类尤其有用,例如 ArrayLi ...

  6. java gson使用_Java 中 Gson的使用

    JSON 是一种文本形式的数据交换格式,它比XML更轻量.比二进制容易阅读和编写,调式也更加方便;解析和生成的方式很多,Java中最常用的类库有:JSON-Java.Gson.Jackson.Fast ...

  7. java 类型擦除_java中的类型擦除type erasure

    简介 泛型是java从JDK 5开始引入的新特性,泛型的引入可以让我们在代码编译的时候就强制检查传入的类型,从而提升了程序的健壮度. 泛型可以用在类和接口上,在集合类中非常常见.本文将会讲解泛型导致的 ...

  8. java list对象_JAVA中list

    Java 查找 List 中的最大值.最小值 Java 查找 List 中的最大值.最小值 java> List list = new ArrayList(); java.util.List l ...

  9. java collection 用法_Java中Collection接口的用法

    Collection接口是List.Set.Queue接口的父接口 Collection接口定义了可用于操作List.Set和Queue的方法--增删改查 List接口及其实现类--ArrayList ...

最新文章

  1. 弄懂“进程”(上):3个组成部分、4个基本特征、4个基本状态
  2. 思考如何提高博客的访问量
  3. 石墨烯可提高热成像质量 提高安检准确性
  4. 【译】Consortium Chain Development
  5. 手机pdf文件转语音_职场小白不懂PDF文件转Word文档?试试微软的这款APP吧
  6. 开闭原则------(转)
  7. 计算机软件429修复工具,Soft4Boost Any Uninstaller
  8. Makefile中几种赋值
  9. Linux Shell中各种分号和括号的用法总结
  10. 共阳数码管段码表_简单共阴极数码管电路图大全
  11. 小学奥数 7657 连乘积末尾0的个数-2022.01.26
  12. position:relative/absolute无法冲破的等级
  13. 兄弟连高洛峰php教程下载_兄弟连经典PHP项目视频教程在线学习与下载-兄弟连高洛峰...
  14. 计算机毕业设计之会议预约系统设计与实现
  15. 应用系统云原生架构衡量指标
  16. java论文word_word 论文 排版 适用于 word2016
  17. 读者提问:如何提高效率?
  18. 两个线程交替打印A1B2C3D4E5输出,6种实现方式
  19. 设计网页字体css,css教程:网页字体及字体大小的设计
  20. python矩阵标准化_python – 有效地行标准化矩阵

热门文章

  1. VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNTION(翻译)
  2. Confluence 6 其他需要备份和恢复的地方
  3. dplyr 数据操作 常用函数(2)
  4. 学习前端工程师手册--学习记录
  5. Unity3D NGUI学习(一)血条
  6. Zabbix 监控Mysql数据库及主从数据库
  7. PyQt的Layout的比例化分块。
  8. FTP服务器之vsftp
  9. CSS-home.htm
  10. MY_SQLCode