类强制转换异常,这似乎是一个有效的语句

萨钦·马尔霍特拉(Sachin Malhotra)
System.out.println((long)(new Object()!=null ? 0 : new Object()));

在执行时,这给出了一个类强制转换异常,如下所示

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

这可能是一个me脚的问题,但是即使我们明确地将0转换为long类型,我仍然无法理解为什么会发生这种情况。

SomeJavaGuy

您的问题是,您正在尝试将分配给intlong从而导致ClassCastException

为了获得正确的结果,您将需要定义0要转换为along的实际long值。

在这种情况下,int如果您未明确定义值的类型,则您尝试分配的每个非浮点数实际上就是一个假名

如果您只是写的话,这很容易看出来long i = 11111111111;您的编译器应告诉您,该数字的范围超出的范围int要告诉编译器该值应该尽可能长,只需L在数字后添加一个long i = 11111111111L;

在您的情况下,您的陈述应为

System.out.println((long)(new Object()!=null ? 0L : new Object()));

一些其他信息:

同样的情况也会发生doublefloat f = 0.;将无法正常工作,因为您需要通过F在值后面添加a来将其定义为浮点数float f = 0.F;

编辑:

您的值0应该包含在内,Integer因为它有可能返回Object如果您编写它,因为System.out.println((long)(new Object()!=null ? 0 : 1));它将再次编译。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

这似乎不是一个有效的功能。为什么?

PHP循环抛出通知,这似乎是一个持续的错误

这似乎是一个基本问题......为什么 OnpropertyChanged 不起作用?

需要帮助,这似乎是一个非常简单的SQL查询

Python导入有效,但是使用导入项失败。使用Django,但这似乎是Python的新手问题

比这更有效地创建一个很长的字符串

使用Java强制转换有效JSON的异常

为什么一个 php 语句有效而另一个无效?

这似乎是一个愚蠢的问题,但它对我来说令人困惑(++),它在php中的位置

一个条件语句中多个“或”语句的有效方法

是否可以将这4个查询合并为一个更有效的查询?

两个if语句,只有一个有效

为什么运算符AND在tsql中返回错误,这在一般sql中似乎是有效的

这两个SQL语句是否等效?一个有效,另一个无效

SQL Server使用带有子查询的IN运算符似乎是一个BUG?

为什么 x-- 是一个有效的 ruby 语句,但它什么也没做?

PhoneGap中只有一个CSS转换有效

R order()函数-似乎是一个错误

String的NumberFormatException似乎是一个数字

从另一个类调用方法的最有效方法

更新一个类之外的值,并使其在C#中有效吗?

如何有效地将布尔表转换为一个热向量?

只有第一个 IF 语句有效!所有其他 IF 不工作

Node.js SQL Server代码似乎是错误的,但是仍然有效吗?

如何避免似乎是有效数组的 php 可数错误

以下哪一个类定义是无法实例化的类的有效定义?(抽象类)

为什么我的 if 和 elif 语句一次只对一个按钮有效?

我如何有效地一次更新一个类的数千个实例?

这声明是有效的?