泛型
来源:互联网 发布:oracle数据库cpu过高 编辑:程序博客网 时间:2024/05/16 04:42
jdk1.5之后,他可以帮助我们解决参数转换的问题,所谓泛型就是不会再类定义属性的时候指明属性的类型或者在定义参数的 时候指明参数的属性,等到调用的时候再去定义。
范例:泛型的实现
package com.wjx.sayHello;class Point<T>{private T x;private T y;public T getX() {return x;}public void setX(T x) {this.x = x;}public T getY() {return y;}public void setY(T y) {this.y = y;}public String toString(T x,T y){return "x="+x+"、y="+y;}}public class TestDemo { public static void main(String[] args) { Point <String> p=new Point<String>(); p.setX("东经112度"); p.setY("西京112度"); //如果定义Object 接受数据// 取数据的时候避免了向下转型的尴尬,不然这边会要String a=(String)p.getX(""); System.out.println(p.toString(p.getX(),p.getY()));}}
通配符
在接受参数的时候无法确定参数的类型,我们用"?"来表示,看如下代码示例:
package com.wjx.sayHello;class Message<T extends Number>{ //设置上限private T note;public T getNote() {return note;}public void setNote(T note) {this.note = note;}}public class TestDemo { public static void main(String[] args) {//Message<String> msg=new Message<String>();如果设置泛型上限,这边只能接受number或者number的子类Message<Integer> msg1=new Message<Integer>();//msg.setNote("你好世界");msg1.setNote(66);//fun(msg);fun(msg1);} public static void fun(Message<?> temp){ //temp.setNote("he"); //通配符他可以接受任何类型正是因为不知道数据类型,所以不予许修改 //通配符设置上限 ?extends 类名 例如 ? extends Number,只能够设置子类 //通配符设置下限?super 类 只可以修饰参数,只能够设置父类 System.out.println(temp.getNote()); }}
泛型接口
除了定义在类中,泛型也可以定义在接口内
package com.wjx.sayHello;interface IMessage<T>{public void print(T t);}class IMessageImpl<T> implements IMessage<T>{@Overridepublic void print(T t) {System.out.println(t);}}/* * 两种方式,第一种在类实现接口的时候定义好数据类型,第二种是在客户端声明类型 *///class IMessageImpl implements IMessage<String>{////@Override//public void print(String t) {//// TODO Auto-generated method stub//System.out.println(t);////}////}public class TestDemo { public static void main(String[] args) { IMessage<String> msg=new IMessageImpl<String>();IMessage<Integer> msg1=new IMessageImpl<Integer>(); msg.print("hello world"); msg1.print(20);}}
泛型方法
package com.wjx.sayHello;public class TestDemo { public static void main(String[] args) { Integer data[]={1,2,3,4,5}; for(int temp:data){ System.out.println(temp); } String str[]={"2","hello","world","leo"}; for(String temp:str){ System.out.println(temp); }} //<T>是描述泛型的标记 public static <T> T[] fun(T... args){ return args; }}
阅读全文
0 0
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 泛型
- 框架思想的资料汇总
- 微信小程序--后端管理平台8页面json数据显示
- java--Scanner
- devexpress控件中的gridControl设置某个单元格属性
- Android应用开发入门【个人笔记】
- 泛型
- windows之explorer.exe无法安装,请联系你的软件供应商
- Js中的Map对象
- 数据库事务
- 有一个学霸对象是什么体验?
- sqlserver查询不区分大小写
- C语言用指针实现两个数组值互换
- PowerDesigner 16.5 安装破解
- iOS UITextField清空按钮