泛型中 ”T” 与 ”?” 的区别 ?|学习笔记

简介: 快速学习泛型中 ”T” 与 ”?” 的区别 ?

开发者学堂课程【Java 面试疑难点串讲 1 :面试技巧及语言基础:泛型中 ”T” 与 ”?” 的区别 ?】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/24/detail/508


泛型中 ”T” 与 ”?” 的区别 ?


内容介绍:

1. “T” 的操作特点

2. “?” 的操作特点

3. 范例:<T> 只能用于泛型类的声明

4. 范例:<T> 用于方法上

“T”的操作特点

“T”用于泛型类型的声明


“?”的操作特点

“?”用于方法的接受参数或者是返回类型


范例:<T> 只能用于泛型类的声明

class Message<T> { //现在这个 T 表示需要设置一个泛型来定义 msg 属性类型

private T msg;

public void setMsg(T msg) {

this.msg = msg;

}

public T getMsg(){

return msg;

}

}


范例:<T> 用于方法上

实际上可以发现 “<T>” 也可以用于方法上,这时表示 T 是一个具体的类型(类、接口),如果该类型不存在则无法使用

public class TestDemo{

public static void main (String []args) {

Message<String>msg = new Message<String>();

msg.setMsg("Hello");

fun(msg);//可以接收所有的 Message 定义的泛型类型 public static void fun(Message<?> temp){

{temp.setMsg("AASAA");//无法设置

System.out.println(temp.getMsg());

}

}

使用“类 <?>” 表示只能取得内容,但不允许设置内容

相关文章
|
5月前
|
存储 Java fastjson
Java泛型-4(类型擦除后如何获取泛型参数)
Java泛型-4(类型擦除后如何获取泛型参数)
60 1
|
存储 安全 Java
Java泛型详解:为什么使用泛型?如何使用泛型?
Java泛型详解:为什么使用泛型?如何使用泛型?
146 0
|
XML 并行计算 安全
【Java基础】泛型+反射+枚举+Lambda表达式 知识点总结
本文重点介绍Java基础:泛型、反射、枚举、Lambda表达式知识点总结。
284 0
|
安全 Java
Java集合学习2:泛型
Java集合学习2:泛型
Java集合学习2:泛型
|
Java 编译器
【数据结构】什么是泛型?为什么要使用泛型?泛型怎么用?那包装类呢?
发现Integer底层维护了一个数组,这个数组值的范围为[-128,127],如果Integet对象的值在这个范围内,直接从cache数组中拿,类似于字符串常量池,就是Integer类型的引用直接指向数组对应值的地址,如果Integer对象的值超过这个范围,会创建新的对象
【数据结构】什么是泛型?为什么要使用泛型?泛型怎么用?那包装类呢?
|
安全 Java
【Java 泛型】泛型用法 ( 泛型类用法 | 泛型方法用法 | 泛型通配符 ? | 泛型安全检查 )(一)
【Java 泛型】泛型用法 ( 泛型类用法 | 泛型方法用法 | 泛型通配符 ? | 泛型安全检查 )(一)
141 0
【Java 泛型】泛型用法 ( 泛型类用法 | 泛型方法用法 | 泛型通配符 ? | 泛型安全检查 )(一)
|
安全 Java
【Java 泛型】泛型用法 ( 泛型类用法 | 泛型方法用法 | 泛型通配符 ? | 泛型安全检查 )(二)
【Java 泛型】泛型用法 ( 泛型类用法 | 泛型方法用法 | 泛型通配符 ? | 泛型安全检查 )(二)
112 0
|
Java C# 程序员
java泛型(一)、泛型的基本介绍和使用
现在开始深入学习java的泛型了,以前一直只是在集合中简单的使用泛型,根本就不明白泛型的原理和作用。泛型在java中,是一个十分重要的特性,所以要好好的研究下。 泛 型的定义:泛型是JDK 1.5的一项新特性,它的本质是参数化类型(Parameterized Type)的应用,也就是说所操作的数据类型被指定为一个参数,在用到的时候在指定具体的类型。
1071 1
|
C# 算法 数据格式
下一篇
无影云桌面