java - java注解中的私有(private)字段

标签 java annotations javac

我的 jboss seam 应用程序在 eclipse 中编译没有错误。当我尝试手动编译时出现错误

STATE_QUERY has private access

@NamedQueries({
    @NamedQuery(name = CurrentModuleState.FIND_MODULE_STATE,
         query = CurrentModuleState.STATE_QUERY)
})
public class CurrentModuleState implements java.io.Serializable {
        ...
        private static final String STATE_QUERY = "...";

Ant :

<javac encoding="cp1251" srcdir="${src-dir}" destdir="${compile-dir}"
            executable="${javac-path}"
            compiler="javac1.6">
    <classpath refid="lib.classpath" />
    <classpath refid="jboss-lib.classpath" />
</javac>

我如何编译它? 附:对不起我的英语)

最佳答案

这是一件奇怪的事情,但我想这是因为该字段是 private 但可以使用前面的类名访问。编译器应该意识到它是从同一个类引用的,但显然没有。

因此,将 private 更改为 protected(不优雅,但应该可以)

您也可以尝试升级 JDK(以及 javac)。注意eclipse使用自己的编译器(不是javac)

关于java - java注解中的私有(private)字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3369731/

相关文章:

java - 多重继承和类对象

java - 如何更改为使用 MXBean 定义的操作显示的输入描述

java - SNMPv3 Trap 发送问题

java - 防止在 Jsf2 中未经登录访问受限页面

java - 如何防止不必要的插入选择?

java如何在属性中配置注释调度程序fixedDelay

iPhone SDK : MapKit multiple custom annotations

java - 为什么实现这个通用接口(interface)会创建一个不明确的引用?

java - 具有源 1.6 配置的 Maven 编译器插件是否可以识别自 1.7 以来引入的 API?

linux - Bash java自动编译器