2012-08-03 81 views
0

對於Juno,我有Groovy-Eclipse,但是我的Groovy類無法識別任何註釋。我越來越Groovy:class Translation is not an annotation in @Translation。或者Groovy:class Override is not an annotation in @Override例如:註解在Groovy類中不起作用

import somewhere.Translation 
@Translation(translationContext = TranslationContext.SOMETHING) 
class SOMECLASS extends SOMETHING { 

@Target(ElementType.TYPE) 
@Retention(RetentionPolicy.RUNTIME) 
public @interface Translation { 

這裏所有註釋@Target,@Retention@interface正在編譯罰款Translation
我都包含在我的項目的lib罐子。我在這裏錯過了什麼?

+0

我們可以看到一些示例代碼嗎?包括你正在使用的輸入。 – mamboking 2012-08-03 17:12:00

回答

1

看起來你已經配置了Java 1.4或更早版本在您的項目/工作區。由於源級別不允許註釋,因此註釋未被識別。

轉到項目 - >屬性 - > Java編譯器。啓用項目設置並將合規性級別設置爲1.5或更高版本。

+0

這是我的理解,Groovy根本就不會編譯1.4 – 2012-08-04 12:57:18

+0

當我在Eclipse中創建一個具有1.4合規性級別的Groovy項目時,上面的錯誤正是我得到的錯誤。這是正在使用的合規性級別(即語法,關鍵字等),而不是正在編譯的JRE。通常情況下,它們應該是相同的級別,但可以具有1.4的合規性級別並且可以針對Java 5 JRE進行編譯。 – 2012-08-04 21:14:47

0
  • Did you import import java.lang.annotation.*;
  • translationContext@interface中的方法那樣定義?
  • 類路徑中正確的Translation,並且沒有重複。

此代碼對我的作品在常規控制檯:

@Translation  
class A{ 
def meth = { print "HzzzI" } 
​} 

@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME) 
public @interface Translation { 
} 

A a = new A(); 
a.meth() 
0

我遇到了同樣的問題。 我的Eclipse IDE強調了註釋,但代碼工作正常! 只需嘗試運行它。對我來說就是這樣。希望這也適合你)