System.out.println()
パラメータ値をコンソールに表示するJavaソースコードを検索していました。とクラスを確認PrintStream
しましたが、メソッドの完全な実装もネイティブコードへの参照もありません。FilterOutputStream
OutputStream
どのSystem.out.println
ネイティブメソッドが実際の仕事をしているのか、値はどのようにコンソールに出力されますか?
System.out.println()
パラメータ値をコンソールに表示するJavaソースコードを検索していました。とクラスを確認PrintStream
しましたが、メソッドの完全な実装もネイティブコードへの参照もありません。FilterOutputStream
OutputStream
どのSystem.out.println
ネイティブメソッドが実際の仕事をしているのか、値はどのようにコンソールに出力されますか?
デコレータ パターン ラッパーをドリルダウンする必要があります。下部にFileOutputStream
、具体的には次のメソッドがあります。
private native void writeBytes(byte b[], int off, int len) throws IOException;
このコードを使用して遊んでください:
public static void main(String[] args) throws Exception {
nav(nav(System.out));
}
static Object nav(Object o) throws Exception {
final Field[] fs = o.getClass().getSuperclass().getDeclaredFields();
for (Field f : fs) {
f.setAccessible(true);
final Object r = f.get(o);
System.out.println(r);
return r;
}
return null;
}
public static final PrintStream out
「標準」出力ストリーム。このストリームはすでに開いており、出力データを受け入れる準備ができています。通常、このストリームは、表示出力、またはホスト環境またはユーザーによって指定された別の出力先に対応します。単純なスタンドアロン Java アプリケーションの場合、出力データ行を書き込む一般的な方法は次のとおりです。
System.out.println(data)
どこ:
void println(String x)
文字列を出力して、行を終了します。