Java >> Java tutorial >  >> Tag >> package

Pakke-info.java-filen

1. Oversigt

I denne selvstudie skal vi forstå formålet med package-info.java og hvordan det er nyttigt. Kort sagt, pakke-info er en Java-fil, der kan føjes til enhver Java-pakke .

2. Formål med pakkeinfo

package-info.java fil har i øjeblikket to formål:

  • Et sted for dokumentation på pakkeniveau
  • Hjem for annoteringer på pakkeniveau

Ud over de førnævnte kan use-cases forlænges efter behov. Hvis det i fremtiden er nødvendigt at tilføje en funktion på pakkeniveau, vil denne fil være et perfekt sted.

Lad os undersøge de aktuelle brugssager i detaljer.

3. Pakkedokumentation

Før Java version 5 blev dokumentationen relateret til en pakke placeret i en HTML-fil, package.html . Dette er blot en normal HTML-fil med Javadoc-kommentarer placeret inde i body tag.

Som JDK 5 ankom til stedet, package.html gav plads til en ny mulighed, package-info.java , som nu foretrækkes frem for package.html .

Lad os se et eksempel på pakkedokumentationen i en pakke-info.java fil:

/**
 * This module is about impact of the final keyword on performance
 * <p>
 * This module explores  if there are any performance benefits from
 * using the final keyword in our code. This module examines the performance
 * implications of using final on a variable, method, and class level.
 * </p>
 *
 * @since 1.0
 * @author baeldung
 * @version 1.1
 */
package com.baeldung.finalkeyword;

Ovenstående pakke-info.java vil generere Javadoc:

Så ligesom vi skriver en Javadoc andre steder, kan vi placere pakken Javadoc i en Java-kildefil.

4. Pakkeanmærkninger

Antag, at vi skal anvende en anmærkning på hele pakken . I dette tilfælde package-info.java kan komme os til hjælp.

Overvej en situation, hvor vi skal erklære felter, parametre og returværdier som ikke-null som standard. Vi kan nå dette mål ved blot at inkludere @NonNullApi annotation for ikke-nul-parametre og returværdier,  og @NonNullFields annotation for felter, der ikke er nul, i vores pakke-info.java fil.

@NonNullFields og @NonNullApi markerer felter, parametre og returneringsværdier som ikke-null, medmindre de udtrykkeligt er markeret som @Nullable :

@NonNullApi
@NonNullFields
package com.baeldung.nullibility;

import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;

Der er forskellige annotationer tilgængelige til brug på pakkeniveau. For eksempel har vi i Hibernate-projektet en kategori af annoteringer, og JAXB-projektet har også annoteringer på pakkeniveau.

5. Sådan opretter du en pakke-info Fil

Oprettelse af en pakke-info fil er ret simpel:vi kan oprette den manuelt eller søge IDE-hjælp til at generere den samme.

I IntelliJ IDEA kan vi højreklikke på pakken og vælge Ny-> package-info.java :

Eclipses Nye Java-pakke mulighed giver os mulighed for at generere en pakke-info.java :

Ovenstående metode virker også for eksisterende pakker. Vælg den eksisterende pakke, Ny-> Pakke mulighed, og marker Opret pakke-info.java mulighed.

Det er altid en god praksis at gøre den obligatoriske medtagelse af pakke-info.java i vores retningslinjer for projektkodning. Værktøjer som Sonar eller Checkstyle kan være en hjælp til at opnå dette.

6. Konklusion

Den største forskel mellem HTML- og Java-filbrugen er, at vi med en Java-fil har en ekstra mulighed for at bruge Java-annoteringer. Så pakke-info java fil er ikke kun et hjem for pakken Javadocs men også pakkeomfattende annoteringer . Denne liste overuse-cases kan også udvides i fremtiden .

Som altid er koden tilgængelig på GitHub.


Java tag