1. 程式人生 > >Java中的package-info.java作用

Java中的package-info.java作用

前言

  之前在Eclipse中,總是會不小心勾選到這個複選框,之前並沒有怎麼在意這個java檔案,畢竟生成之後只有以下這麼點內容。
  
  
  而且你也不能直接建立package-info檔案,因為編輯器會報 Type name is not valid 錯誤,類名無效。我也嘗試在上述生成的 package-info.java 檔案中定義一個class,由於Java變數定義的規範是由字母、數字、下劃線和 $ 符號組成且首字母不為數字,不允許有 - , 所以這個顯然是行不通的。
  
  所以我就很納悶,這東西到底有什麼作用?

作用

  查看了一些資料,總結下,大概的情況就是 package-info.java

檔案為包級文件和包級別註釋提供一個地方。而且該檔案唯一必須包含的是包的宣告。例如上述建立的 package-info.java 檔案中的 package com.bigsea.test,與此同時,這個 package-info.java 也必須位於 com.bigsea.test 包中。

包文件

  軟體包的描述和其他相關文件可以寫在 package-info.java 檔案中,並用於生成 Javadocs (關於如何生成 Javadocs 請自行谷歌或者百度,這裡不做介紹)。
  我這裡做個示例。
  
  

包註釋

  package-info.java 檔案包含包級別的註釋。如以下圖示。
  


  我這裡也同樣的舉個例子。
  以我的工具包作為示例。比如你想棄用一個包中的所有型別。你可以通過使用 @Deprecated 註解每個單獨的型別,或者,你可以在 package-info.java 中的 package 宣告上使用 @Deprecated
  
  
  在 com.bigsea.test 中新建一個 Test 類測試下。看到如下的結果。
  
  也就是說,你在 package-info.java 中的 package 宣告上使用 @Deprecated,這樣一來相當於貶低了對應包中的所有對應的類、介面、列舉等。