gpt4 book ai didi

java - 方法调用有 .class 作为参数吗?

转载 作者:行者123 更新时间:2023-12-01 11:14:39 24 4
gpt4 key购买 nike

什么时候我们应该给方法调用 JavaClass.class 作为参数?我经常看到类似下面的代码,但我不明白它:

String foo(Baar bar) { ... }

foo(Baar.class)

最佳答案

在 java 中,您可以声明方法以获取 Class 类型的参数。类似的东西

String foo(Class<Baar> bar) { ... }

调用该方法的方式是:

Baar bar = new Baar();
foo(bar.getClass());

或者类似的东西

foo(Bar.class);

由于多种原因,函数 foo() 可以使用类型 class 的参数:它可以使用

实例化相同类型的新对象
String foo(Class<Baar> bar) {
Baar barInstance = bar.newInstance();
}

它还可以在 if-then-else block 中使用它来根据类类型采取特定操作。

String foo(Class<?> bar) {
if (bar == Baar.class) {
System.out.println("Baar type received.");
}
}

请注意,需要 Class 对象的函数的方法签名必须明确说明。否则会导致编译时错误;就像你的情况一样。在你的例子中,函数 foo 需要一个 Baar 对象。您不能向其传递 Baar.class 引用。

关于java - 方法调用有 .class 作为参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31980941/

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