2

System.out.println()パラメータ値をコンソールに表示するJavaソースコードを検索していました。とクラスを確認PrintStreamしましたが、メソッドの完全な実装もネイティブコードへの参照もありません。FilterOutputStreamOutputStream

どのSystem.out.printlnネイティブメソッドが実際の仕事をしているのか、値はどのようにコンソールに出力されますか?

4

2 に答える 2

2

デコレータ パターン ラッパーをドリルダウンする必要があります。下部に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;
}
于 2012-04-30T08:52:12.140 に答える
0
public static final PrintStream out

「標準」出力ストリーム。このストリームはすでに開いており、出力データを受け入れる準備ができています。通常、このストリームは、表示出力、またはホスト環境またはユーザーによって指定された別の出力先に対応します。単純なスタンドアロン Java アプリケーションの場合、出力データ行を書き込む一般的な方法は次のとおりです。

System.out.println(data)

どこ:

void println(String x) 

文字列を出力して、行を終了します。

于 2012-04-30T05:53:33.947 に答える