迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

在 Java 中强制转换变量

作者:迹忆客 最近更新:2023/11/13 浏览次数:

本文介绍如何在 Java 中强制转换变量或将变量转换为另一种类型。

转换用于在编程语言中将一个值/变量转换/转换为另一种类型。Java 支持丰富的数据类型,如 intfloatdoubleboolean 等,在编写代码时,可能需要转换变量。

Java 支持两种类型的转换,隐式转换和显式转换。如果我们将 int 转换为 longdouble,那么 Java 会隐式执行此操作,因为 longdouble 使用的字节数比 int 多,我们会执行相反的操作(即,将 double 转换为 int) 那么它可能会由于整数容量而导致数据丢失。

因此,Java 允许在较低数据类型到较高数据类型之间进行隐式转换,但在较高数据类型到较低数据类型之间进行显式转换。让我们通过一些例子来理解。


Java 中的隐式转换

在这里,在这个例子中,我们将 int 转换为 float 类型,隐式转换。由于 Java 允许在没有太多代码的情况下进行隐式转换,因此该代码可以正常工作。

public class SimpleTesting {
  public static void main(String[] args) {
    int a = 23;
    System.out.println("int " + a);
    // int to float - implicit casting
    float f = a;
    System.out.println("float " + f);
  }
}

输出:

int 23
float 23.0

Java 中的显式转换

在某些情况下,由于数据丢失,Java 确实需要显式转换。

例如,如果我们将 float 转换为 int,那么小数点后的值会被截断;这就是 Java 不隐式执行此操作并引发编译时错误的原因。请参见下面的示例。

public class SimpleTesting {
  public static void main(String[] args) {
    float a = 23;
    System.out.println("float " + a);
    // float to int - explicit casting
    int f = a;
    System.out.println("int " + f);
  }
}

输出:

Type mismatch: cannot convert from float to int

这个编译时错误是对程序员的警告,以避免这种数据丢失。如果程序员仍想进行类型转换,Java 允许使用类型名称将类型名称括在函数括号中的类型转换运算符。

此编译器编译并执行代码,但看到值被截断。请参见下面的示例。

public class SimpleTesting {
  public static void main(String[] args) {
    float a = 23.5f;
    System.out.println("float " + a);
    // float to int - explicit casting
    int f = (int) a;
    System.out.println("int " + f);
  }
}

输出:

float 23.50
int 23

我们还可以使用 cast() 方法将对象值转换为原始值。请参见下面的示例。

public class SimpleTesting {
  public static void main(String[] args) {
    Integer a = 23;
    System.out.println("integer " + a);
    // float to int - explicit casting
    int i = (Integer.class.cast(a));
    System.out.println("int " + i);
  }
}

输出:

integer 23
int 23

在 Java 中避免 CastException

转换 Java 对象也是一个主要问题,在转换之前需要正确的类类型。例如,如果我们用 double 强制转换 float 类型,Java 不允许这样做并将 ClassCastException 抛出到控制台。

请参见下面的示例。

public class SimpleTesting {
  public static void main(String[] args) {
    Number num = new Float(15.5);
    System.out.println(num);
    Double d = (Double) num;
    System.out.println(d);
  }
}

输出:

15.5
Exception in thread "main" java.lang.ClassCastException

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Java 中的计数器

发布时间:2023/11/16 浏览次数:177 分类:Java

它描述了 Java 中计数器变量的使用今天我们将讨论 Java 中的 counter 变量。在接下来的部分中,我们将看到如何使用 counter 变量。

Java 中 static 变量和 final 变量之间的区别

发布时间:2023/11/16 浏览次数:143 分类:Java

它显示了 Java 中静态变量和最终变量之间的区别。此外,将通过代码示例讨论这两个变量的使用。本文展示了 static 和 final 关键字之间的区别。让我们以表格格式和工作示例讨论差异。

在 Java 中设置 JAVA_HOME 变量

发布时间:2023/11/16 浏览次数:149 分类:Java

本文介绍如何在 Java 中设置 java_home 变量。在本文中,我们将学习如何在 windows 中设置 JAVA_HOME 变量。Java_Home 是一个引用变量,

如何在 Java 中获取用户输入

发布时间:2023/11/16 浏览次数:160 分类:Java

本文介绍了在 Java 中获取用户输入的最简单方法。在本文中,我们将讨论在 Java 中获取用户输入的最佳方法。虽然有很多方法,但其中一些方法已经被废弃,因此我们将避免使用它们。

在 Java 中初始化布尔变量

发布时间:2023/11/15 浏览次数:83 分类:Java

本文介绍如何在 Java 中初始化布尔变量。在 Java 中,Boolean 是包装原始数据类型 boolean 类型的包装类。

使用 Java 中的 printf() 方法打印布尔值

发布时间:2023/11/15 浏览次数:93 分类:Java

本文介绍了在 Java 中打印布尔值的 printf() 方法。本文介绍了在 Java 中打印布尔值的 printf() 方法。Boolean 是 Java 中的一种数据类型,它包含 true 或 false 文字。

在 Java 中检查输入是否为整数

发布时间:2023/11/15 浏览次数:86 分类:Java

本文介绍了如何在 Java 中判断一个输入是否为整数。问题指出,我们需要检查 Java 语言中的输入是否为整数。使用 Java 中的 hasNextInt 方法检查输入是否为整数

在 Java 中比较两个整数

发布时间:2023/11/15 浏览次数:129 分类:Java

本文介绍如何在 Java 中比较两个整数。本文介绍了如何比较 Java 中的两个整数。要比较 Java 中的整数值,我们可以使用 equals() 方法或 ==(等于运算符)。

Java 中的整数除法

发布时间:2023/11/15 浏览次数:59 分类:Java

本文介绍了 Java 中整数除法是如何发生的。本文详细介绍了当我们将两个整数相除时内部会发生什么。在下面的 Java 代码中,有四个 Java 语句。每行根据彼此相除的数字打印不同的输出。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便