travail sur cette bibliothèque une classe où je dois désactiver tampon sur stderr et stdout, si les importations de clients cette classe, en utilisant quelque chose commePossibilité d'exécuter le code simplement en important la classe en Java?
// stderr
FileOutputStream fderr = new FileOutputStream(FileDescriptor.err);
// stdout
FileOutputStream fdout = new FileOutputStream(FileDescriptor.out);
// stderr buffer of size 1
BufferedOutputStream errBuf = new BufferedOutputStream(fderr, 1);
// stdout buffer of size 1
BufferedOutputStream outBuf = new BufferedOutputStream(fdout, 1);
// add more features and functionality to stderr and stdout
PrintStream errStream = new PrintStream(errBuf);
PrintStream outStream = new PrintStream(outBuf);
// update stderr and stderr
System.setErr(errStream);
System.setOut(outStream);
Entré dans static initializers, mais malheureusement, ils ne fonctionnent qu'en particulier circumstances, aucun d'entre eux ne m'intéresse. Est-il possible en Java de faire exécuter le code ci-dessus uniquement en important la classe conteneur (c'est-à-dire, juste l'instruction import, sans invoquer aucune méthode, etc.)?
Non seulement par l'importation, je pense, vous devez examiner les annotations, peut-être écrivez votre propre. – Shadov
Les instructions 'import' n'ont aucun effet sur l'exécution, elles ne servent que le compilateur pour la résolution de noms. Mais même si cela fonctionnait, ce serait une bonne idée parce que l'indicateur de l'IDE supprime automatiquement les instructions d'importation inutilisées. –