Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java注释中的私有字段_Java_Annotations_Javac - Fatal编程技术网

java注释中的私有字段

java注释中的私有字段,java,annotations,javac,Java,Annotations,Javac,我的JBossSeam应用程序在eclipse中编译没有错误。当我试图手动编译时,我出现了一个错误 STATE\u查询具有私有访问权限 蚂蚁: 我怎么能编译呢? p、 这是一件奇怪的事情,但我想这是因为该字段是私有的,但使用前面的类名访问。编译器应该意识到它是从同一个类引用的,但显然不是 因此,将private更改为protected(不优雅,但应该可以工作) 您还可以尝试升级JDK(从而升级javac)。请注意,eclipse使用自己的编译器(而不是javac)这是一件奇怪的事情,但我认为

我的JBossSeam应用程序在eclipse中编译没有错误。当我试图手动编译时,我出现了一个错误

STATE\u查询具有私有访问权限

蚂蚁:


我怎么能编译呢?
p、 这是一件奇怪的事情,但我想这是因为该字段是私有的,但使用前面的类名访问。编译器应该意识到它是从同一个类引用的,但显然不是

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


您还可以尝试升级JDK(从而升级javac)。请注意,eclipse使用自己的编译器(而不是javac)

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

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


您还可以尝试升级JDK(从而升级javac)。请注意,eclipse使用自己的编译器(而不是javac)

这并不能完全回答这个问题,但我并不认为在查询本身中使用常量有什么意义。我会用这样的东西:

@Entity
@NamedQuery(name = Customer.FIND_ALL, query="select c from Customer c"),
public class Customer {
    public static final String FIND_ALL = "Customer.findAll";
    // Attributes, constructors, getters, setters
}
常数是公共的,因为。。。我希望能够使用它执行查询:

Query query = em.createNamedQuery(Customer.FIND_ALL);
List<Customer> customers = query.getResultList();
Query Query=em.createNamedQuery(Customer.FIND_ALL);
List customers=query.getResultList();
使用常量作为查询的名称是有意义的,因为您将从多个地方引用它(在调用查询时,从
@NamedQuery
注释中),而常量使您的代码更加健壮:它将抵抗键入错误和重构。好处是显而易见的


然而,我个人并不认为在查询本身中使用常数有什么真正的好处。

这并不能完全回答这个问题,但我并不认为在查询本身中使用常数有什么意义。我会用这样的东西:

@Entity
@NamedQuery(name = Customer.FIND_ALL, query="select c from Customer c"),
public class Customer {
    public static final String FIND_ALL = "Customer.findAll";
    // Attributes, constructors, getters, setters
}
常数是公共的,因为。。。我希望能够使用它执行查询:

Query query = em.createNamedQuery(Customer.FIND_ALL);
List<Customer> customers = query.getResultList();
Query Query=em.createNamedQuery(Customer.FIND_ALL);
List customers=query.getResultList();
使用常量作为查询的名称是有意义的,因为您将从多个地方引用它(在调用查询时,从
@NamedQuery
注释中),而常量使您的代码更加健壮:它将抵抗键入错误和重构。好处是显而易见的


但是,我个人认为在查询本身中使用常量没有任何真正的优势。

欢迎使用。我猜“手动”是指用ant编译?你能进入Eclipse中的首选项并从那里发布编译器设置吗?是的。“手动”是指使用ant编译。我在eclipse中找不到编译器设置。它在哪里?编译器设置并不重要,因为eclipse使用它自己的解析器和编译器进程,它很高兴地编译了Sun的javac阻塞的一些更模糊的结构。大多数问题都与Java1.5代码有关,比如本例中的泛型或注释。我猜“手动”是指用ant编译?你能进入Eclipse中的首选项并从那里发布编译器设置吗?是的。“手动”是指使用ant编译。我在eclipse中找不到编译器设置。它在哪里?编译器设置并不重要,因为eclipse使用它自己的解析器和编译器进程,它很高兴地编译了Sun的javac阻塞的一些更模糊的结构。大多数问题都与Java 1.5代码有关,比如本例中的泛型或注释。请参阅以下相关问题:或
query=CurrentModuleState.this.STATE\u query
maybe?@dimafeng它是如何工作的?是同一个编译错误吗?另一个不同的版本?嗯,另一件事是-尝试升级JDK(以及编译器),如果JDK版本中出现问题,eclipse将无法编译该版本,但eclipse编译时没有错误。不正确-eclipse使用自己的编译器,这与
javac
query=CurrentModuleState.this.STATE\u query
可能不同?@dimafeng它怎么不工作?是同一个编译错误吗?另一个不同的版本?好的,另一件事是-尝试升级JDK(以及编译器),如果JDK版本中出现问题,eclipse将无法编译,但是eclipse编译时没有错误。不正确-eclipse使用自己的编译器,这与
javac
不同,谢谢。我们决定在公共界面中移动所有查询。谢谢。我们决定在公共界面中移动所有查询。