【发布时间】:2020-12-05 19:09:53
【问题描述】:
我刚刚了解到在 long 值之后使用“L”来表示它们是 long 类型,就像在 float 类型之后使用“f”一样。我想知道你写的时候会发生什么;
long value = 3;
而不是
long value = 3L;
所以我想知道;
编译器是否将 3 视为整数,然后将其隐式转换为 long?
然后我尝试通过使用instanceof(但我不能使用它,因为它是原始类型)或反射(getClass())来检查值“3”的类型,但显然我不能,因为它是'不是参考类型)。 是否有办法检查值“3”是什么类型,或者这是不可能的,因为 Java 是静态类型的?
谢谢, 伯纳德
【问题讨论】:
-
没有@DontKnowMuchButGettingBetter
-
为什么不呢?请使用该问题的答案显示您的代码,并说明它是如何不起作用的。
-
因为 OP 不是在谈论 field 的类型,而是在谈论 expression 的类型。
-
我们知道
3是一个int字面量;这是给定的。 Java 会自动将其转换为 long -
@BernardBorg:您可以通过在 JLS 中查找
3的类型轻松检查它。
标签: java int long-integer