gpt4 book ai didi

java - Java 中未实例化的匿名类

转载 作者:搜寻专家 更新时间:2023-11-01 03:14:54 25 4
gpt4 key购买 nike

我写 Java 已经大约 6 年了,所以请原谅生锈。

我正在使用一个库方法,该方法要求我将 Class 对象传递给它。由于我必须动态调用此方法多次,每次使用略有不同的 Class 参数,所以我想向它传递一个匿名类。

但是,到目前为止我能找到的所有文档/教程都只讨论实例化匿名类,e.g. :

new className(optional argument list){classBody}

new interfaceName(){classBody}

我可以定义一个匿名类而不实例化它吗?或者,也许更清楚,我可以为匿名类创建一个 Class 对象吗?

最佳答案

不幸的是,您无法避开此处的实例化。但是,您可以将其设置为空操作:

foo((new Object() { ... }).getClass());

当然,如果您必须派生自某个在构造函数中执行某些操作的类,则这可能不是一个选项。

编辑

您的问题还说您希望“每次使用略有不同的 Class 参数”调用 foo。上面的方法不会这样做,因为仍然会有一个匿名内部类定义,即使您将 new 表达式放入循环中也是如此。因此,与命名类定义相比,它不会真正给您带来任何好处。特别是,如果您尝试这样做来捕获某些局部变量的值,foo 将使用传递给的 Class 对象创建匿名类的新实例它不会捕获它们。

关于java - Java 中未实例化的匿名类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1182832/

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