Java Eclipse插件中指定的ID

Java Eclipse插件中指定的ID,java,eclipse,reflection,eclipse-plugin,eclipse-rcp,Java,Eclipse,Reflection,Eclipse Plugin,Eclipse Rcp,我正在写一个eclipse插件。对于许多组件,有必要指定一个ID以便动态引用它们。使用组件的完全限定类名作为其id是否有问题 换句话说,在指定以下内容时是否存在任何缺点/错误: private static final String ID = MyComponent.class.getName(); public static String id() { return ID; } 对于我的插件组件?大多数ID用于plugin.xml文件的扩展点以及Java代码中,因此使用这样的类名可

我正在写一个eclipse插件。对于许多组件,有必要指定一个ID以便动态引用它们。使用组件的完全限定类名作为其id是否有问题

换句话说,在指定以下内容时是否存在任何缺点/错误:

private static final String ID = MyComponent.class.getName();

public static String id() {
    return ID;
}

对于我的插件组件?

大多数ID用于plugin.xml文件的扩展点以及Java代码中,因此使用这样的类名可能不是一个好主意。您仍然需要在plugin.xml中给出字符串值,并且在Java文件中使用不同的公式将使搜索所有文件中出现的id变得更加困难


通常id由插件id+一个额外的单词组成。

从技术上讲,使用完全限定的类名作为扩展点id没有错。为了简单起见,我通常坚持这种命名约定,在实践中也没有看到任何缺点

但是,扩展和扩展点ID的Eclipse命名约定是使用插件的ID作为限定符,后跟CamcelCase的名称。该名称有时以大写字母开头

例如,大多数视图都以大写字母开头,如PackageExplorer视图:
org.eclipse.jdt.ui.PackageExplorer
。另一方面,调试上下文由
org.eclipse.debug.ui.debug
标识

如果您的插件提供了API供其他插件构建,那么这些扩展也被视为API。如果要排除扩展,请在ID的插件部分后放置一个
内部
段,例如:
com.example.myplugin.internal.myView

感谢您的回复。但是,如果IDE也可以替换Java和非Java文件中的完全限定名,那么在重构(用于重新打包/重命名)过程中搜索和替换是否真的很容易?