Java, 212 196 바이트 (의심 한 하드 코딩 규칙이있는 171 바이트)
~ 15 바이트 단축 한 @Cruncher에게 감사합니다!
나는 이것이 골프를 칠 수 있다는 것은 의심의 여지가 없다.
import java.nio.file.*;class A{public static void main(String[]a){new A();}A(){try{System.out.print(new String(Files.readAllBytes(Paths.get(getClass().getName()+".java"))));}catch(Exception e){}}}
또는 정적 메소드 (및 클래스 이름)를 사용하는 다른 메소드는 171 바이트를 얻습니다. 그래도 이것이 하드 코딩 된 자격이 있는지 확실하지 않습니다.
import java.nio.file.*;class A{public static void main(String[]a)throws Exception{System.out.print(new String(Files.readAllBytes(Paths.get(A.class.getName()+".java"))));}}
정적이 아닌 메소드로 클래스 이름을 가져 오기 위해 생성자를 사용합니다. 정적 메소드 ( A.class.getName()
)를 사용하는 것은 실제로 하드 코딩되었으므로 '적절한'방법을 사용했습니다. 을 사용 A.class.getName()
하면이 코드는 171 바이트로 줄어 듭니다.
읽을 수있는 버전 :
생성자 사용 this.getClass()
:
import java.nio.file.*;
class A{
public static void main(String[]a) {
new A();
}
A(){
try{
System.out.print(
new String(
Files.readAllBytes(
Paths.get(
getClass().getName()+".java"))));
}
catch(Exception e) {}
}
}
정적 방법 사용 A.class.getName()
:
import java.nio.file.*;
class A {
public static void main(String[] a) throws Exception {
System.out.print(
new String(
Files.readAllBytes(
Paths.get(
A.class.getName()+".java"))));
}
}
파일의 모든 바이트를 한 번에 잡고 STDOUT에 출력합니다. 꽤 직설적 인.