gpt4 book ai didi

java - 如何使用类名来命名我的 OSGi 组件?

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

我的项目使用一个约定,即使用 class.getName() 作为 OSGi 容器的名称。大多数现有组件都有一个 public static final String 常量,其中包含如下名称:

package mypackage;
@Component(name = MyClass.COMPONENT_NAME)
public class MyClass {
public static final String COMPONENT_NAME = "mypackage" + ".MyClass";
...
}

在项目中创建第一个组件时,我尝试了以下操作:

package mypackage;
@Component(name = MyClass.COMPONENT_NAME)
public class MyClass {
public static final String COMPONENT_NAME = MyClass.class.getName();
...
}

但是,编译器在注释中提示 name 应该是一个常量。

为什么这不起作用?

最佳答案

在您的情况下,是方法调用,该方法调用将在类初始化时(在运行时)执行。值(value)

MyClass.class.getName()

方法调用在编译时是未知的。这就是提示的原因。

关于java - 如何使用类名来命名我的 OSGi 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26482715/

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