java 强制类项转换
origin:http://blog.csdn.net/hikvision_java_gyh/article/details/8957450
编写java程序时,引用变量只能调用它编译时的类项方法。而不能调用它运行时的类型的方法,即使它实际所引用的对象确实包含该方法。如果让这个引用变量调用它运行时类项的方法,则必须把它强制类项转化成运行时类项,需要用类项转化运算符(type)。
强制类项转化:1.基本类项的转化只能在数值类项之间进行,数值:整数型,字符型,浮点型。但数值不能和布尔型之间进行类项转化。
2.引用类项只能把父类类项变量转化成子类类项。
总之,把子类对象变量赋给父类引用时,向上转型(系统隐式转化),总是可以成功的。考虑到向下转型(类型强制转化)时可能出现的异常,应通过instanceof运算符来判断是否可以成功转化。
instanceof:引用变量+instanceof+类/接口 判断前面的对象是不是后面的类或者其子类实现类的实例 。如果是则返回true,否则返回false。
注意:引用变量编译时类项要么与后面类的类项相同,要么是后面类的父类,否则编译通不过。(强制类项转化 大------->小 )
强制转化时的思路:先用instanceof判断一个对象是否可以强制类项转化,再用(type)运算符进行强制类项转化,从而保证程序不会出错。
java 强制类项转换的更多相关文章
- Java——IO类,转换流简化写法
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- 利用JAXB实现java实体类和xml互相转换
1.应用场景 在使用WebService实现数据上传下载,数据查询时,可以利用JAXB实现java实体类和xml互相转换 2.Demo 2.1 student.java 实体类,包含list(set同 ...
- Java基础知识强化34:String类之String类的转换功能
1. String类的转换功能 String[] split(String regex)//将字符串变成字符串数组(字符串切割) byte[] getBytes()//将字符串变成字节数组 char[ ...
- DataTable与实体类的转换
多年前写的DataTable与实体类的转换,已放github 阅读目录 介绍 起因 代码 UnitTest GitHub 介绍 很多年前一直使用Ado.net,后来慢慢转型到其他的orm,在转型过程中 ...
- 使用maven根据JSON文件自动生成Java POJO类(Java Bean)源文件
根据JSON文件自动生成Java POJO类(Java Bean)源文件 本文介绍使用程序jsonschema2pojo来自动生成Java的POJO类源文件,本文主要使用maven,其他构建工具请参考 ...
- Java开发知识之Java字符串类
Java开发知识之Java字符串类 一丶简介 任何语言中.字符串都是很重要的.都涉及到字符串的处理. 例如C++中. 字符串使用内存. 并提供相应的函数进行处理 strcmp strcat strcp ...
- 排名前 16 的 Java 工具类
在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...
- 排名前16的Java工具类
原文:https://www.jianshu.com/p/9e937d178203 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法 ...
- 干货:排名前16的Java工具类
在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...
随机推荐
- T100——上传图片
例子可参考aooi100,上传集团logo的程序 ON ACTION btn_updatelogo #選取上傳檔案,GDC專用 LET gs_upload = NULL CALL cl_client_ ...
- MySQL mysql-5.7.21-winx64.zip安装指南
一.下载mysql-5.7.21-winx64.zip压缩包 二.解压 1.在目录mysql-5.7.21-winx64下新建data文件夹 !!!如果已经存在data文件夹,请删除其中ib_logf ...
- Css文字效果
1.文字样式:font-family 字体:sans-serif(字体醒目):serif(笔画的开始和结束有额外的修饰部分,易读性较强) *页面设计最好有多个备选字体 2.文字大小:font-size ...
- C# 使用Emit实现动态AOP框架 进阶篇之优化
目 录 C# 使用Emit实现动态AOP框架 (一) C# 使用Emit实现动态AOP框架 (二) C# 使用Emit实现动态AOP框架 (三) C# 使用Emit实现动态AOP框架 进阶篇之异常处 ...
- luogu题解P4198楼房重建--线段树神操作
题目链接 https://www.luogu.org/problemnew/show/P4198 分析 一句话题意,一条数轴上有若干楼房,坐标为\(xi\)的楼房有高度\(hi\),那么它的斜率为\( ...
- ES6入门一:块级作用域(let&const)、spread展开、rest收集
let声明 const声明 块级作用域 spread/rest 一.let声明与块作用域 在ES6之前,JavaScript中的作用域基本单元就是function.现在有了let就可以创建任意块的声明 ...
- mysql双yes但是同步延时问题
今天发现在153服务器insert一条数据,然后查看从库154和162都没有这条数据,但是在154和162执行show slave status 显示的双yes 后来重启了153 154 162 ...
- 5.Hibernate 核心开发接口
一.Configuration(AnnotationConfiguration) 作用:进行配置信息的管理 目标:用来产生SessionFactory 可以在configure 方法中指定hibern ...
- 【异常】553 Mail from must equal authorized user
1 详细异常打印 2019-08-12 14:54:42,178 ERROR org.apache.camel.processor.DefaultErrorHandler: Failed delive ...
- Nginx返回大长度的JSON数据被截断
1 添加Nginx参数,增加缓存字符串大小 head{ proxy_buffers 16 512k; //此处值代表nginx 设置 16个 512k 的块进行缓存,总共大小为16*512k prox ...