gpt4 book ai didi

java - 原始类型类的用途/目的是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 21:07:01 25 4
gpt4 key购买 nike

最近了解到有Class JVM 中基本类型的表示。例如,int.classdouble.class,甚至是 void.class

我不明白的是为什么会有这些。它们似乎没有任何功能性作用。使用反射,我搜索了类,它们没有构造函数,没有方法,也没有字段。出于所有意图和目的,它们似乎是空洞且无用的。原始类型变量甚至不是它们各自类的实例,如以下返回 false 所示:

int a = 3;
int.class.isInstance(a);

那么它们为什么存在?它们必须服务于某种目的,也许是为了编译器之类的,但无论它是什么,我都完全无法理解。 Integer API 中甚至明确引用了 int.class (对于每个原始类型及其各自的包装对象也是如此)。我在 JLS 中找不到任何关于它们存在的引用,更不用说它们的用途了。

最佳答案

What I don't understand is why these are there.

考虑以下几点:

public int foo() {
return 0;
}

...

Method method = someClass.getDeclaredMethod("foo");
Class<?> clazz = method.getReturnType();

如果没有 intClass 表示,上面会返回什么?它不应该返回 Integer.class,因为它们不是相同的东西。 (想象一下,试图区分重载的方法,一个带有 int 参数,一个带有 Integer 参数。)

我之前使用这些类在通过反射调用参数时为参数提供默认值。根据参数类型,我对任何引用类型都使用了 null,并为每个原始类型使用了一些(显然是盒装的)原始值。

关于java - 原始类型类的用途/目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13197084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com