`
cakin24
  • 浏览: 1395235 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

请您先登录,才能继续操作

强制类型转换讨论

    博客分类:
  • java
阅读更多

一 强制类型转换的两个注意点

  • 基本类型之间转换只能在数值类型之间进行。
  • 引用类型之间的转换只能在具有继承关系的两个类型之间转换。

二强制类型转换应用

1代码示例

public class ConversionTest
{
	public static void main(String[] args)
	{
		double d = 13.4;
		long l = (long)d;
		System.out.println(l);
		int in = 5;
		// 试图把一个数值类型的变量转换为boolean类型,下面代码编译出错
		// 编译时候会提示: 不可转换的类型
		// boolean b = (boolean)in;
		Object obj = "Hello";
		// obj变量的编译类型为Object,Object与String存在继承关系,可以强制类型转换
		// 而且obj变量实际上类型是String类型,所以运行时也可通过
		String objStr = (String)obj;
		System.out.println(objStr);
		// 定义一个objPri变量,编译类型为Object,实际类型为Integer
		Object objPri = new Integer(5);
		// objPri变量的编译时类型为Object,objPri的运行时类型为Integer,Object与Integer存在继承关系
		// 可以强制类型转换,而objPri变量实际上类型是Integer类型,
		// 所以下面代码运行时引发ClassCastException异常
		String str = (String)objPri;
	}
}

 2运行结果

13

Hello

Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String

at ConversionTest.main(ConversionTest.java:23)

3结果分析

3.1a处代码运行时会引发异常,因为objPri对象运行时的实际类型是Integer,它无法转化为string。

3.2 考虑到进行强制类型时可能出现异常,为了让程序更健壮,a处代码可修改如下:

if(objPri instance of String)
{
    String str=(String)objPri;
}

 

分享到:
评论

相关推荐

    java 强制类型转换示例

    本示例将主要讨论强制类型转换。 1. 强制类型转换的概念: 当我们需要将一个数据类型较大的变量赋值给数据类型较小的变量时,必须进行强制类型转换。例如,将`double`类型的数值转换为`int`类型。Java编译器不会...

    c语言数组访问及强制转换

    本文主要探讨了C语言中的数组访问机制及其与强制类型转换之间的关系。通过具体的编程示例,文章深入解析了一个特殊的问题:如何将一个指向一维整型数组的指针转化为能够被视作二维数组的指针,并成功传递给一个期望...

    C强制类型转换-C教程共5页.pdf.zip

    在C语言中,强制类型转换是一项重要的编程技巧,它允许我们显式地将一个数据类型转换为另一个数据类型。在“C强制类型转换_C教程共5页.pdf.zip”这个压缩包中,我们可以预见到它包含了关于C语言强制类型转换的详细...

    1. 强制类型转换1

    这里我们将详细讨论C风格的强制类型转换、`static_cast`、`dynamic_cast`和`const_cast`这四种主要的类型转换方式。 首先,C风格的强制类型转换是通过`(目标类型)变量名`或`目标类型(变量名)`的形式实现的。例如 `...

    Java中的强制类型转换 大数转小数

    在这个主题中,我们将讨论大数转小数的强制类型转换,例如int类型转short类型。 大数转小数的强制类型转换规则 ----------------------------- 在Java中,大数转小数的强制类型转换中,多出的高位部分会被截断。...

    每天学点C++(C++实例教程:教程+源码)强制类型转换.zip

    在学习C++的过程中,强制类型转换是一个重要的概念,它允许程序员在不同数据类型之间进行转换。本教程将深入探讨C++中的强制类型转换,并通过实例代码帮助你更好地理解和应用这些知识。 首先,我们要理解C++中的四...

    C语言中强制数据类型转换的总结

    显式转换是程序员通过强制类型转换运算符来实现的。 在数据类型转换中,需要注意的是低类型到高类型的转换和高类型到低类型的转换。低类型到高类型的转换一般只是形式上的改变,不会影响数据的实质内容;而高类型到...

    C#自动类型转换与强制类型转换的讲解

    接下来,我们讨论**强制类型转换**。这种转换需要程序员明确指定,并且可能会导致数据丢失。例如,当你试图将一个大范围的类型转换为小范围类型时,超出小范围类型能表示的数据会被截断: ```csharp double d = ...

    java基础学习——类型转换.doc

    本文主要讨论了 Java 中的三种类型转换:强制类型转换、自动升级类型转换以及表达式的升级类型转换,同时也提到了自动包装和解包的概念。 1. 强制类型转换: 强制类型转换是程序员明确指定将一个数据类型转换为另...

    C++类各种类型转换_数据类型的相互转换_

    其次,显式类型转换(也称为强制类型转换)允许程序员明确指定想要的转换。C++提供了四种主要的显式转换方式: 1. `static_cast`:用于基本数据类型的转换,结构体和类之间的转换,以及消除多态性。它通常用于安全...

    解决Java中的强制类型转换和二进制表示问题

    在Java编程语言中,强制类型转换和二进制表示是两个重要的概念,它们与程序的运行效率和数据处理紧密相关。下面将详细讲解这两个主题。 首先,我们来谈谈Java中的强制类型转换。Java是一种静态类型语言,这意味着在...

    C语言实现数值类型转换源代码

    类型转换可以分为两种:自动类型转换(隐式转换)和强制类型转换(显式转换)。 ### 二、自动类型转换 自动类型转换是指在无需程序员干预的情况下,编译器自动完成的数据类型转换。例如,在表达式计算中,如果涉及到...

    Java数据类型转换代码.pdf

    Java有两种主要的数据类型转换方式:自动类型转换(也称为隐式转换)和强制类型转换(也称为显式转换)。在提供的Java代码示例中,我们看到这两种类型的转换都被用于演示。 首先,让我们讨论自动类型转换。这是Java...

    浅谈PHP强制类型转换,慎用!

    这个现象表明,对于涉及浮点数运算和随后的强制类型转换,需要格外小心。 PHP官方建议避免将未知的浮点数强制转换为整数,因为这可能导致不可预测的结果。如果你确实需要进行这样的转换,并且希望得到预期的结果,...

    Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍

    JavaScript中的强制类型转换是编程过程中常见且重要的概念,主要涉及Boolean、Number和String三种类型。在JavaScript中,这些类型的转换规则具有一定的复杂性,因为语言的动态类型特性使得在某些场景下,不同类型...

    SCJP java基础 类型转换

    Java中的类型转换分为两大类:自动类型转换(也称为隐式类型转换)和强制类型转换(也称为显式类型转换)。本篇主要讨论自动类型转换。 #### 三、自动类型转换规则 自动类型转换是在编译时期由Java虚拟机自动完成...

    JAVA程序设计课件-变量的类型转换.pptx

    例如,一个byte类型的变量与另一个byte类型的变量相加时,它们在计算过程中都会被提升为int类型,即使结果仍然在byte的范围内,也必须通过强制类型转换才能将其赋值回byte类型。 了解这些基本概念对于编写有效的...

    day02 【数据类型转换、运算符、方法入门】.zip

    在Java中,主要有两种类型的转换:自动类型转换(也称为隐式转换)和强制类型转换(显式转换)。自动转换发生在数据类型之间存在继承关系时,例如从int到long或者从float到double。而强制转换则需要程序员手动进行,...

    好东西 关于指针和类型转换的合集

    2. **显式类型转换(强制类型转换)**:程序员明确要求的转换,通常用括号表示,如`(int)var`。强制类型转换可以用于在不兼容类型之间转换,但需要注意可能丢失精度或引发溢出。 在实际应用中,指针和类型转换经常...

    robotframework类型强制转换.pdf

    "robotframework类型强制转换.pdf"文档主要讨论了如何在Robot Framework中进行类型转换,以便于进行有效的数值比较。 首先,当我们需要比较两个数值,例如在新增或删除数据后检查总数的变化时,我们通常会获取操作...

Global site tag (gtag.js) - Google Analytics