48 votes

Java.println() comment est-ce possible?

J'ai vu certains le code tel que:

out.println("print something");

J'ai essayé d' import java.lang.System;

mais cela ne fonctionne pas. Comment utilisez-vous out.println() ?

98voto

sfussenegger Points 16204

statique des importations faire l'affaire:

import static java.lang.System.out;

ou, alternativement, d'importer chaque méthode statique et de champ à l'aide de

import static java.lang.System.*;

Addendum par @Steve C: a noter que @sfussenegger dit dans un commentaire sur ma Réponse.

"L'utilisation d'une telle importation statique du Système.n'est pas adapté pour de plus simple que de l'exécution une fois le code."

Donc merci de ne pas imaginer qu'il (ou je) pense que cette solution est la Bonne Pratique.

30voto

tangens Points 17733
PrintStream out = System.out;
out.println( "hello" );

17voto

Stephen C Points 255558

@sfussenegger la réponse explique comment faire ce travail. Mais je dirais que ne pas le faire!

Expérimenté Java programmeurs utilisent, et s'attendre à voir

        System.out.println(...);

et pas

        out.println(...);

Un statique à l'importation de Système.ou de Système.l'erreur est (OMI), le mauvais style, parce que:

  • il rompt l'acceptés idiome, et
  • il est plus difficile de traquer non désirés trace des impressions qui ont été ajoutées en cours de test et n'est pas retiré.

Si vous vous retrouver à faire beaucoup de sortie du Système.ou de Système.euh, je pense que c'est mieux de faire abstraction des flux dans les attributs, variables locales ou des méthodes. Cela permettra de rendre votre application plus réutilisable.

6voto

Casey Points 4095

Eh bien, vous utilisez généralement

System.out.println("print something");

qui ne nécessite pas d'importations. Cependant, depuis est un champ statique à l'intérieur du Système, vous pouvez écrire une utilisation statique à l'importation comme ceci:

import static java.lang.System.*;

class Test {
    public static void main(String[] args) {
        out.println("print something");
    }
}

Jetez un oeil à ce lien. En général, vous ne faites cela que si vous utilisez beaucoup de méthodes statiques d'une classe particulière, comme je l'utilise tout le temps pour junit affirme, et easymock.

3voto

Dushyant Thakur Points 21

out est PrintStream type de variable statique(objet) de l' System de la classe et de l' println() est fonction de l' PrintStream classe.

class PrintStream
{
    public void println(){}    //member function
    ...
}

class System
{
    public static final PrintStream out;   //data member
    ...
}

C'est pourquoi la variable statique(objet) out est accessible avec le nom de la classe System qui invoque également la méthode de println() de ce type, PrintStream (qui est une classe).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X