2013-11-21 78 views
1

我是註解的新手。我經歷了很多教程來解釋註釋的概念。但是我找不到在一個類中定義多個註釋的信息。所以,請給我一些關於定義和訪問多個批註的見解。以下是我在一個類中定義兩個批註的代碼,而Eclipse IDE向我提供了一個錯誤「公共類型SampleAnn必須在其自己的文件中定義」。是原因對於這個錯誤,因爲Java約定「應該只有一個公共註釋每個類名稱的類名稱」?Java註釋基礎知識

@Documented 
@Target(ElementType.LOCAL_VARIABLE) 
@Inherited 
@Retention(RetentionPolicy.RUNTIME) 
public @interface MethodInfo{ 
int number1; 
} 

@Documented 
@Target(ElementType.LOCAL_VARIABLE) 
@Retention(RetentionPolicy.RUNTIME) 
public @interface SampleAnn{ 
int number2; 
} 
+0

註解是類,你不能有每個文件多個公共頂級類在Java中。 –

回答

1

應該更普遍的是每個類文件一個公共類,註釋也不例外。任何公開定義的實體與其java文件的名稱都具有相同的名稱也很重要,所以我不知道如何在同一個文件中擁有兩個。

2

你是對的,你可以在一個文件中只有一個頂級類。

但你可以做什麼:

public class MyAnnotations { 

    public @interface SampleAnn { ... } 
    public @interface MethodInfo { ... } 
} 
0

註解需要在不同的編譯單元(文件)。

的關於頂級類的規範狀態:

該限制意味着必須有每 編譯單元最多有一個這樣的類型。此限制使Java編譯器 可以輕鬆地在包中找到指​​定的類。實際上,許多程序員 選擇將每個類或接口類型放入其自己編譯的 單元中,而不管它是否公開或由其他 編譯單元中的代碼引用。

Specification