Object强制转换问题
Java中,所有的类都继承于Object
。
- 为什么创建出Object的实例?
有时候就是需要一个对象,一个轻量级的对象。常见用途是在线程的同步优化上。
- Object并不是抽象类,它没有必须要被覆盖的方法。
编译器是根据引用类型来判断有哪些方法可以调用,而不是根据你确实的类型。
//比如一个Dog类 它有bark()方法 当我们取得dog对象的引用时(比如从某个名为a的ArrayList中拿到)
Object object = a.get(1);
object.bark(); //这是不允许的!!!
而object是根本不会bark()方法的。
当把对象装入ArrayList<Object>
时,不管它原来是什么,都只能把它当作Object。
但是再把它取出来时,引用的类型也只会是Object。
也就是说这一放一取,原来的对象就没了。
但是,也有办法可以让它还原,也就是强制转换。
Dog dog = (Dog)object;
dog.bark();//这样就可以了
强制转换怎么用呢? 在我确认这个Object是Dog类的时候才能用,如果用错了,它就会报错(比如我将Object强转为Cat类,它就会报错)。
怎么确认?一方面是自己知道,另一方面是编译器帮助我们确认,用的就是instanceof
方法
if (object instanceof Dog){Dog dog = (Dog) object;
}//就算object不是Dog,也不用担心强转报错了。
Object强制转换问题相关推荐
- 把object强制转换成int
Map.Entry entry =(Map.Entry)it.next(); Object val=entry.getValue(); int i = ((Integ ...
- C# 扩展object类 将string强制转换成int
扩展代码: public static class ClassExtend{/// <summary>/// 将object强制转化为int/// </summary>/// ...
- Object类型转为Map 强制转换
Object类型转为Map: 强制转换: Map<String, Object> resultMap = new HashMap<>(); Map<String, Obj ...
- Object 类的强制转换
文章目录 1.Object 类的强制转换 1.1Object 类型可以转换为什么类型? 1.2 Object [] 数组类存储对象 1.Object 类的强制转换 1.1Object 类型可以转换为什 ...
- 隐式转换和显式转换及强制转换的区别
string strType = "123"; object objType= (object)strType;//可以不要,隐式转换, 要的为显式转换 string strTyp ...
- C#装箱,拆箱和强制转换(转)
出处:https://www.cnblogs.com/fengjiulin110120/p/6605739.html 关系: 强制转换就包含有装箱拆箱操作,装箱就是把值类型转换成引用类型,反之就是拆箱 ...
- [Effective JavaScript 笔记]第59条:避免过度的强制转换
js是弱类型语言.许多标准的操作符和代码库会把输入参数强制转换为期望的类型而不是抛出错误.如果未提供额外的逻辑,使用内置操作符的程序会继承这样的强制转换行为. functin square(x){re ...
- Php中的强制转换详解
强制转换中分为两种,第一种就只临时转换,和永久转换.在临时转换中呢,首先可以通过第一中方式来显示,就是小括号的形式,临时转换成整型我们可以通过(int)都是这样的形式,或者是(integer)临时转换 ...
- PHP是弱类型语言,自动转换,强制转换
强制转换: (int) - 转换成整型 (bool) - 转换.成布尔型 (float) - 转换成浮点型 (string) - 转换成字符串 (array) - 转换成数组 (object) - 转 ...
最新文章
- oracle启用归档日志
- 结构体为什么要4字节对齐
- 学习SpringMVC——说说视图解析器
- 【Groovy】集合遍历 ( 使用集合的 collect 循环遍历集合并根据指定闭包规则生成新集合 | 代码示例 )
- 2019ICPC(徐州) - Colorful String(哈希+二分+动态规划/回文自动机)
- 删除的时候提示“该项目不在C:\User\桌面 中
- 森林病虫防治系统 (一)
- hdu3033(变形分组背包)
- 【ML】PAC learning model
- java泛型通俗讲解
- 用shell把所有文件名修改为小写
- 针对笔记本电源已接通未充电的提示怎么办
- php文字成图片格式_使用PHP将文字转换成图片的功能实现方法
- ubuntu系统计算机_显卡-性能测试软件
- 教师对php作品评语通用,教师批改作业100例精彩评语,太有用了!
- 我的秋招圆满落幕了,很开心
- AWS 云计算 SQS SNS
- h5聊天页面 jquery_h5聊天室web端(仿微博、微信)|h5仿微信网页端|仿微信界面弹窗...
- Android模拟Windows10,windows10模拟器
- 2020年 Web 开发的最佳编程语言
热门文章
- 十、矩阵零空间、线性无关、列空间、列空间的基、零度、秩等概念的整合
- TokenMix数据增强
- 用python画雨滴_Python使用Matplotlib实现雨点图动画效果的方法
- Launcher开发——入门篇
- Unity(十八):利用反射来执行Unity编辑器的源码方法
- element-ui表格sort-change排序,当table部分数据为空null时,解决排序不起作用/错乱/不整齐的问题(支持字符串,数字排序)
- 一文彻底搞懂前端沙箱
- Win10只有飞行模式,没有无线模式(无线网卡异常)的解决方法
- Android 11新增分区,可读写,恢复出厂设置不清除数据
- 2018福建省“百越杯”CTF初赛writeup