System.out.println ()을 짧게 만드는 방법


122

더 짧은 표현을 사용하기 위해 lib를 찾을 수있는 System.out.println()위치와 해당 lib를 어디에 배치해야하는지 에 대한 조언을 부탁드립니다 .


2
표현이 짧기 때문에 이것을 사용하고 싶습니까?
Erick Robertson

61
표현식을 단축하기 위해 프로젝트에 라이브러리를 추가하려는 경우 우선 순위가 잘못되었습니다.
Erick Robertson

7
당신이 잘못하는 것보다 나를 믿으십시오.
PeterK

6
코드 골프 태그가 필요하다고 생각합니다.
Mark Peters

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한 다음 CTRL+ 를 누릅니다 SPACE.

다른

좋아하는 텍스트 편집기 / IDE 용 "스 니펫"플러그인 찾기

정적 가져 오기

import static java.lang.System.out;

out.println("Hello World");

JVM 언어 살펴보기

스칼라

println("Hello, World!")

그루비

println "Hello, World!" 

자이 썬

print "Hello, World!" 

JRuby

puts "Hello, World!" 

클로저

(println "Hello, World!")

코뿔소

print('Hello, World!'); 

18
import static System.out;드문 관행이며 제 생각에는 상당히 불필요합니다. 따라서 보는 것은 out.println적어도 처음에는 혼란을 일으킬 수 있습니다. 정적 가져 오기는 더 관용적으로 사용되지만이 특별한 경우는 그렇지 않습니다.
polygenelubricants 2010-07-23

11
Eclspe & Netbeans 단축키는 +1입니다. 정적 수입에 대해 미정입니다.
David J. Liszewski

4
Eclipse에서는 Java> Editor> Templatessysout 에서 템플릿을 변경할 수 있습니다 . 당신은 대체하여 더 짧게도 수 에 의해 :) 정도sysoutso
BalusC

3
@BalusC 더 나은 아이디어-CTRL so+ SPACE는 브라우저 창에서 Stack Overflow를 열고 코딩을 중지합니다.
Michael Mrozek

1
sout또한 IntelliJ IDEA에서도 작동합니다 (NetBeans는 아마 그들로부터 복사했을 것입니다. :) 어쨌든, 그 길이는 System.out.println()IMHO와 관련이 없습니다.
Jonik

27
void p(String l){
System.out.println(l);
}

최단. 그것을 위해 가십시오.


7
+1, Java가 코드 골프에서 승리하는 것을 보는 것이 재미 있기 때문입니다. ;-)
chimeracoder

실제로 "Java 프로그래밍 시작 : 객체 지향 접근 방식"에서 바로 나온
uchuugaka

17

Java는 장황한 언어입니다.

겨우 3 일 밖에 걸리지 않았고 이로 인해 이미 짜증이났다면 Scala와 같은 다른 언어를 배우는 것이 더 나을 것입니다.

scala> println("Hello World")
Hello World

느슨한 의미에서 이것은 "라이브러리"를 사용하여 더 짧은 표현을 사용하는 것으로 간주됩니다.)


4
이것은 Java에서 5 년째입니다. 아직 제 시간에 있습니까?
Tom

2
물론! Scala는 자바 개발자를위한 매우 점진적인 학습 곡선을 가지고 있습니다.
dbyrne

나는 Clojure의에 중독
피터

1
맞습니다. Java는 장황한 언어입니다. OP와 같은 질문을하는 것은 그것을 알아 가기위한 정상적인 부분입니다.
barfuin 2013-08-30

6
저는 자바에 중독되어 있습니다.
ceklock 2013-08-30

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.

들어 이클립스syso누릅니다 Ctrl+ Space.


2
귀하의 대답은 아마도 IDE에 따라 다릅니다. 이 바로 가기가 정확히 어디에서 작동하는지 설명하고 싶을 수 있습니다. 그렇지 않으면 당신의 대답은 누구에게도 도움이되지 않습니다.
기본 로케일

1
@defaultlocale 감사합니다. 그래 그건 사실이야. 특정 정보를 추가했습니다.
Max Gabderakhmanov

7

log4j 또는 JDK 로깅을 사용하면 클래스에서 정적 로거를 만들고 다음과 같이 호출 할 수 있습니다.

LOG.info("foo")

2

Bakkal이 설명했듯이 키보드 단축키의 경우 netbeans도구-> 옵션-> 편집기-> 코드 템플릿으로 이동하여 고유 한 단축키를 추가하거나 편집 할 수 있습니다.

에서 Eclipse이 템플릿입니다.


1

BlueJ 에 대한 내 솔루션 은 Program Files (x86) \ BlueJ \ lib \ english \ templates \ newclass에서 New Class 템플릿 "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 ( "안녕하세요!");

    }
}

0

Java 8에서 :

    List<String> players = new ArrayList<>();
     players.forEach(System.out::println);

-1

System.out.println ()을 사용하는 것은 나쁜 습관입니다 (로깅 프레임 워크를 사용하는 것이 더 좋습니다).-> 코드베이스에 많이 발생하지 않아야합니다. 다른 방법을 사용하여 단순히 단축하는 것은 좋은 선택이 아닙니다.


동의하지 않습니다. 이미 정상적인 로깅이있는 경우 Sysout을 사용하는 것이 현재 확인해야하는 항목을 구별하는 더 좋은 방법입니다. 또한 sysout을 사용하는 것이 훨씬 빠르며 매초마다 많은 디버깅을 수행하면 중요합니다.
브레이크 라인
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.