• 引用变量的强制类型转换:


    public class ConversionTest{
    	public static void main(String[] args){
    		//-基本类型之间的转换只能在数值之间进行
    		double d=13.4;
    		long l=(long)d;
    		System.out.println(l);
    		
    		//-数值类型和布尔类型之间不能进行转换
    		int a=5;
    		//-编译报错:不可转换的类型
    		//boolean b=(boolean)a;
    
    		//-String 类型为Object的子类型,所以可以转换
    		Object obj="张三";
    		String objstr=(String)obj;
    		System.out.println(objstr);
    
    		//-Object类型为Integer的父类型,所以可以这样定义
    		Object objint=new Integer(5);
    		//-objint实际为Integer类型,与String类型不是父子继承类型的关系,所以转换运行会报错
    		//String str=(String)objint;
    		
    		//-如果写代码时不确定两个类型是否可以转换,
    		//-防止代码报错,可以在转换前用 instanceof 运算符判断是否可以转换,
    		//-根据返回结果再决定是否继续转换,用法如下:
    		if(objint instanceof String){
    			  String str=(String)objint;	
    		}
    		System.out.println(objint instanceof String);
    	}
    }

    运行结果:

    总结:

    1、基本类型之间的转换只能在数值之间进行,数值类型和布尔类型之间不能进行转换

    2、引用类型之间的转换只能在具有继承关系之间的类型间进行,若两个没有任何继承关系的类型之间无法进行转换,否则编译报错。

    3、如果写代码时不确定两个类型是否可以转换,防止代码报错,可以在转换前用 instanceof 运算符判断是否可以转换,根据返回结果再决定是否继续转换,用法如下:

    if(objint instanceof String){
    	String str=(String)objint;	
    }
    System.out.println(objint instanceof String);
    

    运行结果如上

  • 相关阅读:
    Android 监听键盘的弹起与收缩
    Android Glide+CircleImageView实现加载圆形图片列表
    Java 集合
    Java 文件IO续
    Java 文件IO
    Java 网络编程
    Android AIDL Service
    Android 四大组件之Service
    Android 开源项目分类汇总(转)
    Android SQLite数据库
  • 原文地址:https://www.cnblogs.com/baby-zhude/p/8035278.html
Copyright © 2020-2023  润新知