2011-10-14 33 views
4

我知道接口是什麼,但我不知道java知道如何搜索我的答案。那麼這是什麼意思呢?@interface - 什麼?

public @interface ThreadSafe { } 

// different file 

@ThreadSafe 
public class Model { 

這行代表什麼意思/ do「@interface」?是什麼時,它上面的「@ThreadSafe」

回答

5

應用這就是所謂的註解意思/做。你可能想看看Java教程。它對於它們是什麼以及如何使用有很好的解釋。

http://download.oracle.com/javase/tutorial/java/javaOO/annotations.html

+0

閱讀。謝謝。現在@ThreadSafe對任何人都有什麼好處? – user123321

+0

如果它來自net.jcip.annotations,這裏是它的文檔:http://jcip.net/annotations/doc/index.html它似乎沒有做任何事情,只是*註釋*類,所以用戶知道它是線程安全的。 – Delyan

-4

這就像內置於類本身的XML描述符,但它隱藏了複雜的東西。你只是說你想讓這個課程成爲線程安全的,並且願意。所有配置都在@符號的單行上。

+2

嗯...你是否暗示你需要做的所有事情才能使你的類線程安全?因爲事實並非如此。在這種情況下,註釋只是爲了讓班級的客戶知道作者採取措施使其線程安全。 –

+0

我相信它不僅僅是一個評論塊http://jcip.net/annotations/doc/net/jcip/annotations/ThreadSafe.html –

+1

沒有辦法讓神奇的課程線程變得安全。您需要一種策略,其中包括使用Atomic實例,同步塊,易失性字段等。每種情況都是不同且獨特的。沒有適合所有的解決方案。在實踐中閱讀Java併發性以獲取更多關於如何實現線程安全類的細節。 –

2

許多註釋代碼中的註釋。

假設的軟件組傳統上與意見提供了重要的信息開始每類的主體:

public class Generation3List extends Generation2List { 
    // Author: John Doe 
    // Date: 3/17/2002 
    // Current revision: 6 
    // Last modified: 4/12/2004 
    // By: Jane Doe 
    // Reviewers: Alice, Bill, Cindy 

    // class code goes here 
} 

與註釋添加此相同的元數據,你必須首先定義註釋類型。這樣做的語法是:

@interface ClassPreamble { 
    String author(); 
    String date(); 
    int currentRevision() default 1; 
    String lastModified() default "N/A"; 
    String lastModifiedBy() default "N/A"; 
    // Note use of array 
    String[] reviewers(); 
} 

的註解類型的定義類似於在此,關鍵字接口由在符號之前的接口定義(@)(@ = AT,如在註釋類型)。註釋類型是一種界面形式,將在後面的課程中介紹。目前,您不需要了解接口。

以前的註釋定義的主體包含註釋類型元素的聲明,這看起來很像方法。請注意,他們可以定義可選的默認值。

註釋類型被定義後,您可以使用該類型的註釋,填入的是,像這樣的價值觀:

@ClassPreamble (
    author = "John Doe", 
    date = "3/17/2002", 
    currentRevision = 6, 
    lastModified = "4/12/2004", 
    lastModifiedBy = "Jane Doe", 
    // Note array notation 
    reviewers = {"Alice", "Bob", "Cindy"} 
) 

public class Generation3List extends Generation2List { 
// class code goes here 
} 

來源:https://docs.oracle.com/javase/tutorial/java/annotations/declaring.html

相關問題