java 泛型使用
泛型类
// 简单泛型
class Point<T>{ // 此处可以随便写标识符号,T是type的简称
private T var ;
public T getVar(){
return var ;
}
public void setVar(T var){
this.var = var ;
}
}
// 多元泛型
class Notepad<K,V>{
private K key ;
private V value ;
public K getKey(){
return this.key ;
}
public V getValue(){
return this.value ;
}
public void setKey(K key){
this.key = key ;
}
public void setValue(V value){
this.value = value ;
}
}
public class GenericsDemo09{
public static void main(String args[]){
Notepad<String,Integer> t = new Notepad<String,Integer>() ;
t.setKey("汤姆") ;
t.setValue(20) ;
System.out.print("姓名;" + t.getKey()) ;
System.out.print(",年龄;" + t.getValue()) ;
}
}
泛型接口
// 泛型接口,带一个抽象方法
interface Info<T>{
public T getVar() ;
}
// 泛型接口实现类
class InfoImpl<T> implements Info<T>{
private T var ;
public InfoImpl(T var){
this.setVar(var) ;
}
public void setVar(T var){
this.var = var ;
}
public T getVar(){
return this.var ;
}
}
public class GenericsDemo24{
public static void main(String arsg[]){
Info<String> i = new InfoImpl<String>("汤姆") ;
System.out.println("内容:" + i.getVar()) ;
}
}
泛型方法
// 参数类型是 Number 子类
private static <T extends Number> double add(T a, T b) {
return a.doubleValue() + b.doubleValue();
}
// 带泛型的字节码对象作为参数
private static <T> T test(String s, Class<T> t) {
return JSONObject.parseObject(string, t);
}
public static void main(String[] args) {
add(1, 2);
User user = test("{\"name\":\"Marry\",\"age\":18}", User.class);
}
泛型上下限
// 指定上限:只能是 Number 或其子类
static class Info<T extends Number>{
}
// 指定下限(只能用在方法上):必须是 Integer 或其父类
public static void test(Info<? super Integer> info){
}
java 泛型使用的更多相关文章
- Java泛型的历史
为什么Java泛型会有当前的缺陷? 之前的章节里已经说明了Java泛型擦除会导致的问题,C++和C#的泛型都是在运行时存在的,难道Java天然不支持“真正的泛型”吗? 事实上,在Java1.5在200 ...
- 浅析Java 泛型
泛型是JavaSE5引入的一个新概念,但是这个概念在编程语言中却是很普遍的一个概念.下面,根据以下内容,我们总结下在Java中使用泛型. 泛型使用的意义 什么是泛型 泛型类 泛型方法 泛型接口 泛型擦 ...
- Java:泛型基础
泛型 引入泛型 传统编写的限制: 在Java中一般的类和方法,只能使用具体的类型,要么是基本数据类型,要么是自定义类型.如果要编写可以应用于多种类型的代码,这种刻板的限制就会束缚很多! 解决这种限制的 ...
- java泛型基础
泛型是Java SE 1.5的新特性, 泛型的本质是参数化类型, 也就是说所操作的数据类型被指定为一个参数. 这种参数类型可以用在类.接口和方法的创建中, 分别称为泛型类.泛型接口.泛型方法. Ja ...
- 使用java泛型设计通用方法
泛型是Java SE 1.5的新特性, 泛型的本质是参数化类型, 也就是说所操作的数据类型被指定为一个参数. 因此我们可以利用泛型和反射来设计一些通用方法. 现在有2张表, 一张user表和一张stu ...
- 关于Java泛型的使用
在目前我遇到的java项目中,泛型应用的最多的就属集合了.当要从数据库取出多个对象或者说是多条记录时,往往都要使用集合,那么为什么这么使用,或者使用时有什么要注意的地方,请关注以下内容. 感谢Wind ...
- 初识java泛型
1 协变数组类型(covariant array type) 数组的协变性: if A IS-A B then A[] IS-A B[] 也就是说,java中的数组兼容,一个类型的数组兼容他的子类类型 ...
- 【Java心得总结四】Java泛型下——万恶的擦除
一.万恶的擦除 我在自己总结的[Java心得总结三]Java泛型上——初识泛型这篇博文中提到了Java中对泛型擦除的问题,考虑下面代码: import java.util.*; public clas ...
- 【Java心得总结三】Java泛型上——初识泛型
一.函数参数与泛型比较 泛型(generics),从字面的意思理解就是泛化的类型,即参数化类型.泛型的作用是什么,这里与函数参数做一个比较: 无参数的函数: public int[] newIntAr ...
- 初识Java泛型以及桥接方法
泛型的由来 在编写程序时,可能会有这样的需求:容器类,比如java中常见的list等.为了使容器可以保存多种类型的数据,需要编写多种容器类,每一个容器类中规定好了可以操作的数据类型.此时可能会有Int ...
随机推荐
- 在SublimeText3中想使用快捷键调出插件ColorPicker不起作用办法解决
在SublimeText3中快速打开插件ColorPicker的快捷健是Ctrl+Shift+C,但是我试了却不管用,后来发现是跟插件ConvertToUTF8插件中的快捷键冲突导致,知道原因就好办了 ...
- 关于oracle中scott用户恢复到初始状态的步骤,和一些问题解决方法。
一般恢复步骤: sqlplus 连接到sys用户sqlplus / as sysdba运行脚本进行初始恢复start ?/rdbms/admin/utlsampl.sql;恢复后,用户为锁定状态,需要 ...
- [267] High Five
[267] High Five Client 00 SendLogOut 01 RequestAttack 03 RequestStartPledgeWar 04 RequestReplyStartP ...
- element ui中el-tree文字显示不全解决方案
// 问题描述 // 在项目中使用element-ui前端框架来开发界面时,使用el-tree组件实现树形菜单,遇到当节点文字过长会出现显示不全的问题 <el-tree ref="tr ...
- vue自定义组件的总结(一)
1.定义组件时 <template> <input class="input" :type="type" :pla ...
- 【ubuntu20】解压文件
第一类处理 *** .zip或 ***.rar 时,需要先下载相对应的unzip和unrar,可在终端,执行 sudo apt-get install unzipsudo apt-get instal ...
- (0502)《UVM》sequence
- 解决手机点击包含a、button标签时出现背景色问题
a,button { display: inline-block; width: 100%; -webkit-tap-highlight-color:rgba(0,0,0,0);/*添加此样式即可去除 ...
- 微信开发者工具代码管理设置使用SSH Key(使用密码)方法
参考微信开发社区--使用ssh key无法推送代码.微信开发者工具 SSH key认证 推送.拉取GitHub项目 1.确认已安装git,打开 Git Bash 使用https://git.weixi ...
- 关于filter_input函数
PHP: filter_input <?php $search_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_ ...