Java String之泛型的介绍及相关用法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java String之泛型的介绍及相关用法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1864字,纯文字阅读大概需要3分钟。
内容图文
首先依旧是定义Point测试类:
package day04;
/**
* 泛型
* 泛型又称为参数化类型,是将当前类的属性的类型、方法参数的类型
* 以及方法返回值的类型的定义权移交给使用者。使用者在创建当前类
* 的同时将泛型的实际类型传入。
* @author kaixu
*
* @param <T>
*
*/
public class Point<T> {
private T x;
private T y;
public Point(T x,T y){
super();
this.x = x;
this.y = 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.x = y;
}
public String toString(){
return "("+x+","+y+")";
}
}
之后定义TestPoint类对泛型的功能进行检测:
package day04;
public class TestPoint {
public static void main(String[] args) {
Point<Integer>p1 = new Point<Integer>(1,2);
p1.setX(2);
int x1= p1.getX();
System.out.println("x1:"+x1);
Point<Double>p2 = new Point<Double>(1.1,2.2);
p2.setX(2.2);
double x2 = p2.getX();
System.out.println("x2:"+x2);
Point<String> p3 = new Point<String>("一","二");
p3.setX("二");
String x3 = p3.getX();
System.out.println("x3:"+x3);
}
}
在此基础为了完全证明泛型的原型是Object,再定义TestPoint2类重写相关方法,加深对泛型的理解。
package day04;
/**
* 泛型的原型是Object,定义了泛型知识编译器在做一些验证工作。
* 当我们对泛型类型设置值时,会检查是否满足类型要求。
* 当我们获取一个泛型类型的值时,会自动进行类型转换。
* @author kaixu
*
*/
public class TestPoint2 {
public static void main(String[] args) {
/*
* 这里指定泛型的实际类型为Integer
* 但实际上,创建的Point对象中,x,y属性是Object类型
* 这里只是应当将它当作Integer看待。
*/
Point<Integer> p1 = new Point<Integer>(1,2);
/*
* 由于参数是T,这里会验证实参是否为Integer
* 若不是则会编译失败。
* 可以传入基本类型,因为还会自动装箱。
*/
p1.setX(1);
/*
*获取时,也会进行自动造型。这里无需显示的进行了类型转换。
*/
int x1 = p1.getX();
Point p2 = p1;
p2.setX("一");
String x2 = (String)p2.getX();
System.out.println("x2:"+x2);
//类造型异常!
x1 = p1.getX();
System.out.println("x1:"+x1); //String类型无法造型为Integer类型
}
}
以上。
内容总结
以上是互联网集市为您收集整理的Java String之泛型的介绍及相关用法全部内容,希望文章能够帮你解决Java String之泛型的介绍及相关用法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。