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/58076383/

相关文章:

java - SQL错误: 17068 while inserting records in hibernate

java - 无法添加窗口——对此窗口类型的权限被拒绝

java - 如何在 Java 中注释代码块

java - Hibernate 映射的父类(super class)关系和覆盖

java - 使用 Netbeans 将示例应用程序打包并作为 JAR 运行

Java:找不到符号:变量对象

java - 如何使用 iText 解析未标记的 pdf 文件

java - 使用 byte[] 的部分内存效率更高的方法是什么?

java - Play Java 中的 @With 注解

java - 用classpath编译java找不到所有的jar文件