Comment raccourcir System.out.println ()

122

S'il vous plaît des conseils sur où puis-je trouver la lib afin d'utiliser l'expression plus courte de System.out.println()et où dois-je placer cette lib.

Eugène
la source
2
Vous souhaitez l'utiliser uniquement parce que l'expression est plus courte?
Erick Robertson
61
Si vous allez ajouter une bibliothèque à votre projet juste pour raccourcir une expression, vos priorités sont dans le désordre.
Erick Robertson
7
Que vous le faites mal, croyez-moi.
PeterK
6
J'ai l'impression que cela nécessite la balise code-golf.
Mark Peters
3
Utiliser System.out est généralement mauvais dans une application bien conçue, donc les réponses n'ont pas vraiment d'importance ...
Bananeweizen

Réponses:

310

Bibliothèques de journalisation

Vous pouvez utiliser des bibliothèques de journalisation au lieu de réinventer la roue. Log4j, par exemple, fournira des méthodes pour différents messages comme info(), warn()et error().

Méthodes maison

ou créez simplement printlnvotre propre méthode et appelez-la:

void println(Object line) {
    System.out.println(line);
}

println("Hello World");

Raccourcis clavier IDE

IntelliJ IDEA et NetBeans:

vous tapez soutpuis appuyez sur TAB, et il tape System.out.println()pour vous, avec le curseur au bon endroit.

Éclipse:

Tapez sysopuis appuyez sur CTRL+ SPACE.

Autre

Trouvez un plugin "snippets" pour votre éditeur de texte / IDE préféré

Importation statique

import static java.lang.System.out;

out.println("Hello World");

Explorez les langages JVM

Scala

println("Hello, World!")

Sensationnel

println "Hello, World!" 

Jython

print "Hello, World!" 

JRuby

puts "Hello, World!" 

Clojure

(println "Hello, World!")

Rhinocéros

print('Hello, World!'); 
Bakkal
la source
18
import static System.out;est une pratique rare, et tout à fait inutile à mon avis, et donc voir out.printlnpeut prêter à confusion au moins au début. L'importation statique a un usage plus idiomatique, mais ce cas particulier n'est pas celui-là.
polygenelubricants
11
+1 pour les raccourcis Eclspe et Netbeans. Je suis indécis sur l'importation statique.
David J.Liszewski
4
Dans Eclipse, vous pouvez modifier le sysoutmodèle dans Java> Editeur> Modèles . Vous pouvez même le rendre plus court en le remplaçant sysoutpar soou so :)
BalusC
3
@BalusC Better idea - soCTRL + SPACE ouvre Stack Overflow dans une fenêtre de navigateur et vous arrêtez de coder
Michael Mrozek
1
soutfonctionne également dans IntelliJ IDEA (NetBeans l'a probablement copié d'eux :) Quoi qu'il en soit, il est bon de mentionner que - la longueur de System.out.println()devient sans importance avec elle IMHO.
Jonik
27
void p(String l){
System.out.println(l);
}

Le plus court. Fonce.

rup
la source
7
+1, juste parce que c'est amusant de voir Java gagner un golf de code pour un changement. ;-)
chimeracoder
En fait, c'est tout droit sorti de "Début de la programmation Java: l'approche orientée objet" ici wrox.com/WileyCDA/WroxTitle
...
17

Java est un langage verbeux.

Si vous n'êtes que 3 jours et que cela vous dérange déjà, vous feriez peut-être mieux d'apprendre une autre langue comme Scala:

scala> println("Hello World")
Hello World

Dans un sens large, cela reviendrait à utiliser une "bibliothèque" pour permettre des expressions plus courtes;)

dbyrne
la source
4
C'est ma 5e année à Java, suis-je encore à temps?
Tom
2
Absolument! Scala a une courbe d'apprentissage très progressive pour les développeurs Java.
dbyrne
Je suis accro à Clojure
Peter
1
À droite, Java est un langage verbeux; se poser des questions comme le PO est une étape normale pour le connaître.
barfuin
6
Je suis accro à Java.
ceklock
14

Quelques alternatives intéressantes:

OPTION 1

PrintStream p = System.out;
p.println("hello");

OPTION 2

PrintWriter p = new PrintWriter(System.out, true);
p.println("Hello");
Stephen Paul
la source
9

Pour IntelliJ IDEA de type soutet appuyez sur Tab.

Pour le type Eclipsesyso et appuyez sur Ctrl+ Space.

Max Gabderakhmanov
la source
2
Votre réponse dépend probablement d'un IDE. Vous voudrez peut-être expliquer où exactement ce raccourci fonctionne. Sinon, votre réponse n'aide vraiment personne.
locale par défaut le
1
@defaultlocale Merci. Oui c'est vrai. J'ai ajouté des informations spécifiques.
Max Gabderakhmanov le
7

Utilisez la journalisation log4j ou JDK pour pouvoir simplement créer un enregistreur statique dans la classe et l'appeler comme ceci:

LOG.info("foo")
Jon Bringhurst
la source
2

Comme Bakkal l'a expliqué, pour les raccourcis clavier, dans netbeansvous pouvez aller dans outils-> options-> éditeur-> modèles de code et ajouter ou modifier vos propres raccourcis.

Dans Eclipsec'est sur les modèles.

Dazito
la source
1

Ma solution pour BlueJ est d'éditer le modèle de nouvelle classe "stdclass.tmpl" dans Program Files (x86) \ BlueJ \ lib \ english \ templates \ newclass et d'ajouter cette méthode:

public static <T> void p(T s)
{
    System.out.println(s);
}

Ou cette autre version:

public static void p(Object s)
{
    System.out.println(s);
}

Quant à Eclipse, j'utilise le raccourci suggéré syso + <Ctrl> + <Space>:)

carlos_lm
la source
1

Un point mineur peut-être, mais:

import static System.out;

public class Tester
{
    public static void main(String[] args)
    {
        out.println("Hello!"); 
    }
}

... a généré une erreur de compilation. J'ai corrigé l'erreur en éditant la première ligne pour lire:

import static java.lang.System.out;
CaitlinG
la source
1
package some.useful.methods;

classe publique B {

    public static void p (Object s) {
        System.out.println (s);
    }
}
package first.java.lesson;

import statique some.useful.methods.B. *;

classe publique A {

    public static void main (String [] args) {

        p ("Bonjour!");

    }
}
Denis
la source
0

Dans Java 8:

    List<String> players = new ArrayList<>();
     players.forEach(System.out::println);
Abhilash
la source
-1

Utiliser System.out.println () est une mauvaise pratique (mieux utiliser le framework de journalisation) -> vous ne devriez pas avoir beaucoup d'occurrences dans votre base de code. Utiliser une autre méthode pour simplement raccourcir cela ne semble pas une bonne option.

Marc T
la source
Je ne suis pas d'accord. Si vous disposez déjà d'une journalisation normale, l'utilisation de Sysout est un meilleur moyen de distinguer ce que vous devez voir pour le moment. De plus, l'utilisation de sysout est beaucoup plus rapide, et si vous faites beaucoup de débogage, chaque seconde compte.
rupture