9.14 泛型的基本定义
demo1
class Point<T> {// T属于类型标记,可以设置多个标记
private T x;
private T y;
public void setX(T x){
this.x = x;
}
public void setY(T y){
this.y = y;
}
public T getX(){
return this.x;
}
public T getY(){
return this.y;
}
}
public class HelloWorld {
public static void main(String args[]){
// 实例化Point类,设置泛型标记"T"的目标数据类型,属性,方法参数,返回值的类型动态配置
Point<Integer> point = new Point<Integer>();
// 第一步:根据需求进行内容的设置,所有数据通过Object接收
point.setX(10);
point.setY(20);// 自动装箱
//point.setY("北纬20度");// 自动装箱--编译报错了
// 第二步:从里面获取数据--不用向下转型
int x = point.getX();
int y = point.getY();// 获取y坐标的原始内容
System.out.println("x坐标:" + x + ",y坐标:" + y);
}
}
-
泛型的本质在于:类中的属性或方法的参数与返回值的类型,可以有对象实例化的时候决定.
-
那么此时就需要在类定义的时候,明确的定义占位符(泛型标记)
-
泛型之中只允许设置引用类型,如果现在要操作基本类型必须使用包装类;
-
从jdk1.7开始,泛型对象实例化可以简化为:Point
point = new Point<>();(后面Integer可以省略) -
使用泛型可以解决大部分的类对象的强制转换处理,这样的程序才是一个合理的设计;
相信坚持的力量,日复一日的习惯.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!