gpt4 book ai didi

java - 如何使用Java反射设置接口(interface)字段

转载 作者:行者123 更新时间:2023-12-04 05:42:39 25 4
gpt4 key购买 nike

我正在使用 Jboss 7.1.1.final,并且我有一个大量使用 JMS 的应用程序。在做了一些性能测试之后,我发现每当我收到一定数量的消息时,应用程序就会开始失败,因为没有足够的队列 session 。

经过一番研究,我发现这个 JMS 属性只在 jboss 版本 7.1.2 中公开(参见 here)。

由于出于法律原因,我目前无法使用此版本(或修复它的特定版本),因此更改它的唯一其他方法是使用反射。所以我下载了Jboss源代码并开始使用它,现在我有几个问题:

首先我发现我需要的类(class)是org.jboss.as.messaging.CommonAttributes这实际上是一个接口(interface),它有这一行:

 SimpleAttributeDefinition CONNECTION_THREAD_POOL_MAX_SIZE = new SimpleAttributeDefinition("thread-pool-max-size",
new ModelNode().set(HornetQClient.DEFAULT_THREAD_POOL_MAX_SIZE), ModelType.INT, true, MeasurementUnit.NONE);
  • ClassLoader.getSystemClassLoader()给我加载类所需的类加载器?
  • 如何使用反射设置接口(interface)字段值? (Field.set() 方法需要一个对象实例,因为它是一个接口(interface),我无法实例化它)
  • 最佳答案

    你说的是this一段代码。我必须让你失望:接口(interface)根本没有字段。它们只有方法声明,没有实现。

    你看到的其实是public static final (所有这些关键字对于接口(interface)内部的“字段”都是隐含的)接口(interface)主体中定义的常量。但是接口(interface)仅用作它们的命名空间,它们不是真正的字段。实现此类接口(interface)的类不会继承这些字段并拥有自己的变量副本。它们只是常数。

    话虽如此 - 你不能做任何事情,至少在这个界面上是这样。

    关于java - 如何使用Java反射设置接口(interface)字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11070744/

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