Seuls jusqu'à 100 avertissements javac sont émis.

Il a été confirmé que cet article fonctionne dans les environnements suivants. Cependant, je pense que le contenu est valable pour d'autres versions et d'autres fournisseurs (´ ・ ω ・ `)

C:\jdk>java -version
openjdk version "12" 2019-03-19
OpenJDK Runtime Environment (build 12+33)
OpenJDK 64-Bit Server VM (build 12+33, mixed mode, sharing)

C:\jdk>javac -version
javac 12

Par exemple, si vous avez le code suivant:

import java.util.List;

public class Sample {
    public static void main(String[] args) {
        List list001;
        List list002;
        List list003;
        List list004;
        List list005;

        //Omis parce que c'est long

        List list196;
        List list197;
        List list198;
        List list199;
        List list200;
    }
}

Comme c'est compliqué, certaines parties sont omises, mais 200 Lists sont déclarées comme prototype (Raw Type). Ainsi, lorsque je compile avec l'option -Xlint, je veux que 200 avertissements soient affichés, mais en réalité, seuls 100 sont affichés.

C:\jdk>javac -Xlint Sample.java
Sample.java:5:avertissement:[rawtypes]Type brut trouvé: List
        List list001;
        ^
Liste des classes génériques<E>Aucun argument de type pour
Si E est une variable de type:
E étend l'objet déclaré dans la liste d'interface
Sample.java:6:avertissement:[rawtypes]Type brut trouvé: List
        List list002;
        ^
Liste des classes génériques<E>Aucun argument de type pour
Si E est une variable de type:
E étend l'objet déclaré dans la liste d'interface
Sample.java:7:avertissement:[rawtypes]Type brut trouvé: List
        List list003;
        ^
Liste des classes génériques<E>Aucun argument de type pour
Si E est une variable de type:
E étend l'objet déclaré dans la liste d'interface

(Omis car il est long comme d'habitude)

Sample.java:102:avertissement:[rawtypes]Type brut trouvé: List
        List list098;
        ^
Liste des classes génériques<E>Aucun argument de type pour
Si E est une variable de type:
E étend l'objet déclaré dans la liste d'interface
Sample.java:103:avertissement:[rawtypes]Type brut trouvé: List
        List list099;
        ^
Liste des classes génériques<E>Aucun argument de type pour
Si E est une variable de type:
E étend l'objet déclaré dans la liste d'interface
Sample.java:104:avertissement:[rawtypes]Type brut trouvé: List
        List list100;
        ^
Liste des classes génériques<E>Aucun argument de type pour
Si E est une variable de type:
E étend l'objet déclaré dans la liste d'interface
100 avertissements

Le nombre maximum d'avertissements à la compilation peut être défini avec l'option -Xmaxwarns. Cette valeur semble être 100 par défaut, donc dans l'exemple ci-dessus, seuls 100 avertissements ont été émis. Par conséquent, si vous voulez afficher 200 avertissements, ou si vous voulez afficher un nombre illimité d'avertissements, vous pouvez définir une valeur énorme dans l'option -Xmaxwarns.


C:\jdk>javac -Xlint -Xmaxwarns 999999 Sample.java
Sample.java:5:avertissement:[rawtypes]Type brut trouvé: List
        List list001;
        ^
Liste des classes génériques<E>Aucun argument de type pour
Si E est une variable de type:
E étend l'objet déclaré dans la liste d'interface
Sample.java:6:avertissement:[rawtypes]Type brut trouvé: List
        List list002;
        ^
Liste des classes génériques<E>Aucun argument de type pour
Si E est une variable de type:
E étend l'objet déclaré dans la liste d'interface
Sample.java:7:avertissement:[rawtypes]Type brut trouvé: List
        List list003;
        ^
Liste des classes génériques<E>Aucun argument de type pour
Si E est une variable de type:
E étend l'objet déclaré dans la liste d'interface

(Omis parce que c'est long)

Sample.java:202:avertissement:[rawtypes]Type brut trouvé: List
        List list198;
        ^
Liste des classes génériques<E>Aucun argument de type pour
Si E est une variable de type:
E étend l'objet déclaré dans la liste d'interface
Sample.java:203:avertissement:[rawtypes]Type brut trouvé: List
        List list199;
        ^
Liste des classes génériques<E>Aucun argument de type pour
Si E est une variable de type:
E étend l'objet déclaré dans la liste d'interface
Sample.java:204:avertissement:[rawtypes]Type brut trouvé: List
        List list200;
        ^
Liste des classes génériques<E>Aucun argument de type pour
Si E est une variable de type:
E étend l'objet déclaré dans la liste d'interface
200 avertissements

--Bonus 1: Non seulement les avertissements, mais aussi la valeur maximale des erreurs de compilation peuvent être spécifiées avec -Xmaxerrs. --Bonus 2: Il semble que "100 valeurs par défaut est le maximum" est rare, mais fondamentalement, s'il y a même un avertissement, il doit être corrigé immédiatement. Ne fermez pas les yeux sur l'avertissement simplement parce que la compilation a réussi (auto-conseillé)

Recommended Posts

Seuls jusqu'à 100 avertissements javac sont émis.
Introduction à la commande javac
Définir un filigrane à imprimer uniquement lors de l'impression avec iText