System.out.println()を短くする方法


122

のより短い表現を使用するためにどこにlibを見つけることができSystem.out.println()、どこにそのlibを配置すべきかについてアドバイスをお願いします。


2
式が短いので、これを使用したいですか?
エリックロバートソン

61
式を短くするためだけにライブラリをプロジェクトに追加する場合は、優先順位が狂っています。
エリックロバートソン

7
あなたがそれを間違っているよりも、私を信頼してください。
PeterK 2010

6
これにはcode-golfタグが必要だと思います。
マークピーターズ

3
適切に設計されたアプリケーションではSystem.outを使用することは一般的に悪いので、答えはそれほど重要ではありません...
Bananeweizen

回答:


310

ロギングライブラリ

ホイールを再発明する代わりに、ロギングライブラリを使用できます。たとえば、Log4jinfo()warn()やのようなさまざまなメッセージのメソッドを提供しますerror()

自家製の方法

またはprintln、独自のメソッドを作成して呼び出すだけです。

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

println("Hello World");

IDEキーボードショートカット

IntelliJ IDEAおよびNetBeans:

次のように入力しsout、その後、プレスをTABタイプし、そしてそのSystem.out.println()右の場所にカーソルを置いて、あなたのため。

日食:

入力して+ sysoを押します。CTRLSPACE

その他の

お気に入りのテキストエディター/ IDEの「スニペット」プラグインを見つけます

静的インポート

import static java.lang.System.out;

out.println("Hello World");

JVM言語を探索する

Scala

println("Hello, World!")

グルーヴィー

println "Hello, World!" 

ジソン

print "Hello, World!" 

JRuby

puts "Hello, World!" 

Clojure

(println "Hello, World!")

Rhino

print('Hello, World!'); 

18
import static System.out;まれな習慣であり、私の考えではまったく不必要out.printlnです。そのため、見ることは少なくとも最初は混乱を引き起こす可能性があります。静的インポートはより慣用的な使用法を持っていますが、この特定のケースはそうではありません。
polygenelubricants

11
EclspeおよびNetbeansショートカットの+1。静的インポートについては未定です。
David J. Liszewski、2010

4
Eclipse ではsysoutJava> Editor> Templatesでテンプレートを変更できます。あなたも交換することにより、それをより短くすることができますsysoutによってsoまたはそう:)
BalusC

3
@BalusCより良いアイデア-CTRL so+ SPACEはブラウザーウィンドウでスタックオーバーフローを開き、コーディングを停止します
Michael Mrozek

1
soutIntelliJ IDEAでも動作します(NetBeansはおそらくそれらからコピーします:)とにかく、それについて言及しておくとよい–長さがSystem.out.println()それと無関係になるIMHO。
Jonik


17

Javaは冗長言語です。

まだ3日しかなくて、これがすでに気になっている場合は、Scalaのような別の言語を学習したほうがよいでしょう。

scala> println("Hello World")
Hello World

大まかに言えば、これは「ライブラリ」を使用して短い式を有効にすることと見なされます;)


4
今年で5年目です。まだ間に合いますか?
トム

2
絶対に!Scalaは、Java開発者にとって非常に緩やかな学習曲線を持っています。
dbyrne 2010

私はClojureにはまっています
ピーター

1
そう、Javaは冗長な言語です。OPのような質問をすることは、それを知るための通常の部分です。
バルフイン2013

6
私はJavaにはまっています。
ceklock 2013

14

いくつかの興味深い選択肢:

オプション1

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

オプション2

PrintWriter p = new PrintWriter(System.out, true);
p.println("Hello");

9

以下のためのIntelliJ IDEAのタイプsoutとプレスTab

以下のためのEclipseのタイプsysoとプレスCtrl+ Space


2
あなたの答えはおそらくIDEに依存します。このショートカットが正確に機能する場所を説明する必要があります。それ以外の場合、あなたの答えは実際には誰の助けにもなりません。
デフォルトのロケール

1
@defaultlocaleありがとう。はい、それは本当だ。特定の情報をいくつか追加しました。
Max Gabderakhmanov 2016


2

Bakkalが説明したように、キーボードショートカットについては、netbeansツール->オプション->エディタ->コードテンプレートに移動して、独自のショートカットを追加または編集できます。

Eclipse、それはテンプレートにあります。


1

BlueJに対する私の解決策は、Program Files(x86)\ BlueJ \ lib \ english \ templates \ newclassの新しいクラステンプレート "stdclass.tmpl"を編集して、このメソッドを追加することです。

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

または、この他のバージョン:

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

Eclipseについては、推奨されるショートカットを使用していますsyso + <Ctrl> + <Space>:)


1

マイナーなポイントかもしれませんが、

import static System.out;

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

...コンパイル時エラーが発生しました。読み取る最初の行を編集してエラーを修正しました。

import static java.lang.System.out;

1
パッケージsome.useful.methods;

パブリッククラスB {

    public static void p(Object s){
        System.out.println(s);
    }
}
パッケージfirst.java.lesson;

import static some.useful.methods.B。*;

パブリッククラスA {

    public static void main(String [] args){

        p( "こんにちは!");

    }
}


-1

System.out.println()を使用することは悪い習慣です(ロギングフレームワークをよりよく使用してください)->コードベースに多くのオカレンスを含めることはできません。別の方法を使用して単純に短縮することは、良いオプションとは思えません。


同意しない。すでに通常のロギングが行われている場合は、Sysoutを使用すると、現時点で確認する必要があるものを区別できます。また、sysoutを使用するとはるかに高速になり、毎秒多くのデバッグを行う場合はカウントされます。
ブレークライン2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.