Android(java)学习笔记29:泛型类的概述和使用
2024-08-27 22:01:50
1. 泛型类的概述和使用
泛型类用法一:
下面我们首先定义泛型类:
package cn.itcast_04; /*
* 泛型类:把泛型定义在类上
*/
public class ObjectTool<T> { //这里的<T>就像一个参数一样,现在还不确定这个泛型的类型是什么,之后创建对象或者调用方法的时候才会知道
private T obj; public T getObj() {
return obj;
} public void setObj(T obj) {
this.obj = obj;
}
}
接下来我编写测试类应用上面的泛型类 ObjectTool<T>:
package cn.itcast_04; /*
* 泛型类的测试
*/
public class ObjectToolDemo {
public static void main(String[] args) {
// ObjectTool ot = new ObjectTool();
//
// ot.setObj(new String("风清扬"));
// String s = (String) ot.getObj();
// System.out.println("姓名是:" + s);
//
// ot.setObj(new Integer(30));
// Integer i = (Integer) ot.getObj();
// System.out.println("年龄是:" + i); // ot.setObj(new String("林青霞"));
// // ClassCastException
// Integer ii = (Integer) ot.getObj();
// System.out.println("姓名是:" + ii); System.out.println("-------------"); ObjectTool<String> ot = new ObjectTool<String>();
// ot.setObj(new Integer(27)); //这个时候编译期间就过不去
ot.setObj(new String("林青霞"));
String s = ot.getObj();
System.out.println("姓名是:" + s); ObjectTool<Integer> ot2 = new ObjectTool<Integer>();
// ot2.setObj(new String("风清扬"));//这个时候编译期间就过不去
ot2.setObj(new Integer(27));
Integer i = ot2.getObj();
System.out.println("年龄是:" + i);
}
}
泛型类用法二:泛型之方法
package cn.itcast_05; //public class ObjectTool<T> {
// // public void show(String s) {
// // System.out.println(s);
// // }
// //
// // public void show(Integer i) {
// // System.out.println(i);
// // }
// //
// // public void show(Boolean b) {
// // System.out.println(b);
// // }
//
// public void show(T t) {
// System.out.println(t);
// }
// } /*
* 泛型方法:把泛型定义在方法上
*/
public class ObjectTool {
public <T> void show(T t) {
System.out.println(t);
}
}
然后编写泛型测试类:
package cn.itcast_05; public class ObjectToolDemo {
public static void main(String[] args) {
// ObjectTool ot = new ObjectTool();
// ot.show("hello");
// ot.show(100);
// ot.show(true); // ObjectTool<String> ot = new ObjectTool<String>();
// ot.show("hello");
//
// ObjectTool<Integer> ot2 = new ObjectTool<Integer>();
// ot2.show(100);
//
// ObjectTool<Boolean> ot3 = new ObjectTool<Boolean>();
// ot3.show(true); // 如果还听得懂,那就说明泛型类是没有问题的
// 但是呢,谁说了我的方法一定要和类的类型的一致呢?
// 我要是类上没有泛型的话,方法还能不能接收任意类型的参数了呢? // 定义泛型方法后
ObjectTool ot = new ObjectTool();
ot.show("hello");
ot.show(100);
ot.show(true);
}
}
最新文章
- SQL Server 阻止了对组件 &#39;Ad Hoc Distributed Queries&#39; 的 STATEMENT&#39;OpenRowset/OpenDatasource&#39; 的访问
- nginx之location匹配优先级和安全问题
- B+Tree和MySQL索引分析
- CentOS7安装Ambari
- javascript中prototype、constructor以及__proto__之间的三角关系
- [CAMCOCO][C#]我的系统架构.服务器端.(四)----Model层 实体的自我验证
- spring多数据源配置
- 笔试面试题-小米Git
- WPF DataGrid 之数据绑定
- angular 指令梳理 —— 前端校验
- 按钮特效-Enter键自动提交表单
- 理解云计算的(IaaS PaaS SaaS)
- Node.js显示页面
- Mysql 上亿级数据导入Hive思路分享
- C# 操作Word目录——生成、删除目录
- HTTP协议7之Cookie--转
- 使用pgrouting进行最短路径搜索
- 转 JVM找出占用CPU最高的线程
- STL基础复习
- Android--Activity中使用Intent传值
热门文章
- centos7.1部署java环境服务器
- ASP.NET Core文件上传、下载与删除
- 日志收集之filebeat
- Java关键字final、static使用总结 (final static在容器中不可以改变容器但可以改变存放)
- ife task0003学习笔记(四):JavaScript构造函数
- java中HashMap的keySet()和values()
- 【转载】Web 研发模式演变
- opencv2.4.10+VS2012配置问题
- ThreadPoolExecutor(下篇)
- 理解JavaScript作用域