gpt4 book ai didi

java - `String.class` 和 `new Class[]{String.class}` 有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:25:55 27 4
gpt4 key购买 nike

我是 Java 的新手。我有一个问题如下:

class MyClass
{
public MyClass(String s){}
}

MyClass MyObject;

Constructor ctor1 = MyObject.class.getConstructor(String.class); // #1
Constructor ctor2 = MyObject.class.getConstructor(new Class[]{String.class}); // #2

#1#2 有什么区别?

最佳答案

没有区别。

getConstructor() 的参数类型是Class<?>... , 它采用了 varargs语法,这是一种语法糖,可以自动将任意大小(包括零)的元素列表转换为数组。

为了说明,这两个调用是等价的:

Constructor ctor1 = MyObject.class.getConstructor(String.class, Integer.class); // #1
Constructor ctor2 = MyObject.class.getConstructor(new Class[]{String.class, Integer.class}); // #2

虽然我很钦佩您“深入了解”(使用反射)的热情,但如果您是 Java 新手,您可能会考虑推迟,直到您牢牢掌握基础知识,然后再学习如何规避它们。

关于java - `String.class` 和 `new Class[]{String.class}` 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25781705/

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