泛型简单使用:
package com.etc; import java.util.ArrayList;
import java.util.List;
/*
泛型就相当于<>一个标签,泛化类型,一般用于规定集合的数据存放类型。
instanceof方法是用来判断某个对象是否为某一个类的实例 */
public class Test { public static void main(String[] args) { List<String> list=new ArrayList<String>();
list.add("abc");
//无法存放除String类型的数据,较为安全,会进行类型检查
//list.add(1);
//取数据较为省心
System.out.println(list.get(0)); } }
1.泛型类:
package com.test;
/*
自定义泛型类的使用,尽量用大写字母表示
T -> Type
K V ->Key Value
尽量见名知其意
泛型不能用于静态的属性
*/
public class Teacher<T> { public T name;
// private T id; public Teacher(T name) {
super();
this.name = name;
} public Teacher() {
super();
} public T getName() {
return name;
}
public void setName(T name) {
this.name = name;
} }
泛型类的使用:
package com.test;
/*
自定义泛型类的使用,在声明时需要指定具体的类型,不能为基本类型
*/
public class TestTeacher { public static void main(String[] args) { Teacher<String> list=new Teacher<String>();
list.setName("皮卡丘");
System.out.println(list.getName()); } }
效果截图:
2.泛型接口:
package com.test; public interface Person <T>{
//泛型不能用于全局变量前
/*public static final 编译时自动添加*/
int MAX_VALUE=1;
/*public abstract 编译时自动添加*/
T compare(T t); }
泛型接口的实现:
package com.test;
//泛型接口的实现,必须指定泛型的类型
public class TestPerson implements Person<String> { public static void main(String[] args) { String t="I like codes very much!!!!";
TestPerson ts=new TestPerson();
System.out.println(ts.compare(t)); } @Override
public String compare(String t) {
return t;
} }
效果截图:
3.常用泛型形式:
(1)Student.java
package com.test; import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; public class Student { public String name;
public int id;
public Date birth; public Student(String name, int id, String birth) {
super();
this.name = name;
this.id = id;
DateFormat format=new SimpleDateFormat("yyyy-MM");
try {
this.birth = format.parse(birth);
} catch (ParseException e) {
e.printStackTrace();
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
} }
(2)TestStudent.java
package com.test; import java.util.ArrayList;
import java.util.List; public class TestStudent { public static void main(String[] args) { List<Student> list=new ArrayList<Student>();
Student stu1=new Student("张三",1,"1998-03");
Student stu2=new Student("李四",2,"1998-04");
list.add(stu1);
list.add(stu2);
System.out.println(list.get(0).getName()+" "+list.get(0).getId()+" "+list.get(0).getBirth());
System.out.println(list.get(1).getName()+" "+list.get(1).getId()+" "+list.get(1).getBirth()); } }
效果截图:
java泛型-泛型类,泛型接口,常用形式的更多相关文章
-
java 泛型 -- 泛型类,泛型接口,泛型方法
泛型T泛型的许多最佳例子都来自集合框架,因为泛型让您在保存在集合中的元素上指定类型约束.在定义泛型类或声明泛型类的变量时,使用尖括号来指定形式类型参数.形式类型参数与实际类型参数之间的关系类似于形式方 ...
-
Java 泛型-泛型类、泛型方法、泛型接口、通配符、上下限
泛型: 一种程序设计语言的新特性,于Java而言,在JDK 1.5开始引入.泛型就是在设计程序的时候定义一些可变部分,在具体使用的时候再给可变部分指定具体的类型.使用泛型比使用Object变量再进行强 ...
-
Java泛型(泛型接口、泛型类、泛型方法)
转载 转载出处:https://www.cnblogs.com/JokerShi/p/8117556.html 泛型接口: 定义一个泛型接口: 通过类去实现这个泛型接口的时候指定泛型T的具体类型. 指 ...
-
java 泛型详解(普通泛型、 通配符、 泛型接口)
java 泛型详解(普通泛型. 通配符. 泛型接口) JDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为5.0.这说明Java已经有大幅度的变化.本文将讲解JDK5.0支持的新功能---- ...
-
java 泛型详解(普通泛型、 通配符、 泛型接口,泛型数组,泛型方法,泛型嵌套)
JDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为5.0.这说明Java已经有大幅度的变化.本文将讲解JDK5.0支持的新功能-----Java的泛型. 1.Java泛型 其实Java ...
-
java 泛型实例详解(普通泛型、 通配符、 泛型接口)
java 泛型详解(普通泛型. 通配符. 泛型接口) 2013-02-04 19:49:49| 分类: JAVA | 标签:java |举报|字号 订阅 下载LOFTER客户端 JDK1.5 令我们期 ...
-
java泛型应用实例 - 自定义泛型类,方法
近 短时间需要使用泛型,就研究了下,发现网上的问关于泛型的文章都是讲原理的, 很少有提到那里用泛型比较合适, 本文就泛型类和泛型方法的使用给出两 个典型应用场景. 例如一个toString的泛型方法, ...
-
Java:泛型基础
泛型 引入泛型 传统编写的限制: 在Java中一般的类和方法,只能使用具体的类型,要么是基本数据类型,要么是自定义类型.如果要编写可以应用于多种类型的代码,这种刻板的限制就会束缚很多! 解决这种限制的 ...
-
Java泛型介绍!!!
Java总结篇系列:Java泛型 转自:http://www.cnblogs.com/lwbqqyumidi/p/3837629.html 一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下 ...
随机推荐
-
【原创】Newlife.XCode的常见功能使用(一)查询与数据初始化
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html Newlife XCode组件相关文章目录:http://www ...
-
一些XMLHttpRequest的例子代码
以下例子摘录自:javascript权威指南 //异步请求(事件监听请求是否返回) function getText(url,callback){ var request = new XMLHttpR ...
-
Java MyEclipse下Ant build.xml简单实例详解
一.下载配置ant 1.首先下载ant: http://www.apache.org/ 下载最新的版本2.解压ant 后设置ANT_HOME, PATH中添加ANT_HOME目录下的bin目录(如:A ...
-
silverlight Canvas、StackPanel、Grid三者之间的关系
学习 silverlight 首先Canvas.StackPanel.Grid 博客园里看到jailu的这篇文章整理得很好 贴下来: Silverlight提供了非常灵活的布局管理系统,让程序员和 ...
-
boost 源码编译 的 Makefile.am写法备份
include $(top_srcdir)/common.mk bin_PROGRAMS= lib_LIBRARIES= lib_LTLIBRARIES= lib_LTLIBRARIES+=libSt ...
-
dtp--eclipse的安装数据源管理的一个插件的安装方法
1. 下载eclipse dtp 插件 http://download.eclipse.org/datatools/updates/1.11 help——>install new softwa ...
-
#414 Div2 C
#414 Div2 C 题意 两个人每个人都有一串字母序列,他们要替换一个长度为 n 包含问号的新序列,他们每次可以使用自己序列中的字母代替新序列的问号(使用自己序列中的字母后那个字母就会消失),第一 ...
-
IDA分析脱壳后丢失导入表的PE
1. 问题 一些程序经过脱壳后(如用OD的dump插件),一些导入表信息丢失了,导致拖入IDA后看不到API的信息(如右图所示,第一个红圈处实际是GetCurrentProcessId),给分析造成极 ...
-
[Sdoi2017]硬币游戏 [高斯消元 KMP]
[Sdoi2017]硬币游戏 题意:硬币序列,H T等概率出现,\(n \le 300\)个人猜了一个长为$ m \le 300$的字符串,出现即获胜游戏结束.求每个人获胜概率 考场用了[1444: ...
-
tensorflow会话控制-【老鱼学tensorflow】
在tensorflow中,当定义好结构后,就要通过tf.session()来建立运行时的会话. 本例子应该不难理解,我们用tensorflow来计算一下一个1行2列的矩阵和2行1列矩阵的乘积: imp ...