Javaでランタイムコンソールの警告を抑制する最善の方法は何ですか?

seansand:

私はorg.apache.commons.httpclient.methods.PostMethodクラスのgetResponseBody()メソッドを使用しています。ただし、実行時に常にコンソールにメッセージが表示されます。

警告:サイズが大きいか不明な応答本文をバッファリングしようとしています。代わりにgetResponseBodyAsStreamを使用することをお勧めします。

コードでは、とにかくバイト配列に応答を書き込む必要があるので、使用するのはgetResponseBody()メソッドです。しかし、警告メッセージを抑制できる簡単な方法があるので、実行するたびにそれを見る必要はありませんか?

コンパイラエラーの場合は、@ SuppressWarningsアノテーションを使用しますが、これはコンパイル時の問題ではありません。実行時に発生します。また、getResponseBodyAsStreamを使用してByteArrayOutputStreamに書き込むこともできますが、これは警告を回避するための面倒な方法のようです(getResponseBody()がすでに行っていることを行うための追加のコード行)。

私の推測では、答えにはSystem.outまたはSystem.errの操作が含まれますが、これを行うための良い方法はありますか?

ランドルフォ:

警告が示すように、バイト配列ではなくストリームを使用することをお勧めします。プッシュしようとしている応答が特に大きい場合(ファイルが大きい場合)、すべてをメモリにロードしますが、これは非常に悪いことです。

ストリームを使用するほうがよいでしょう。

とはいえ、System.errまたはSystem.outを一時的に置き換えることで、ハッキングする可能性があります。これらは単なるPrintStreamオブジェクトであり、setOutメソッドとsetErrメソッドで設定できます。

PrintStream oldErr = System.err;
PrintStream newErr = new PrintStream(new ByteArrayOutputStream());
System.setErr(newErr);

// do your work

System.setErr(oldErr);

編集:

ストリームを使用する方が望ましいことに同意しますが、現状では、応答を配置する必要があるターゲットAPIはバイト配列です。必要に応じて、ストリームを取得できるようにAPIをリファクタリングできます。そのほうがいい。警告は確実に理由があります。

APIを変更できる場合は、変更してください。この場合、ストリーム処理が最善の方法です。内部の圧力などが原因でできない場合は、@ John Mのルートに移動してポンプを上げてBUFFER_WARN_TRIGGER_LIMITください。ただし、既知のcontentLengthがあることを確認してください。そうでない場合、そのルートも失敗します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

空の無限ループに対するコンパイラの動作を決定するための最善のアプローチは何ですか?

分類Dev

特定のインスタンスを見つける、最善のアプローチは何ですか

分類Dev

この「インスタンスメソッドから静的フィールドに書き込む」findbugs警告を修正する最良の方法は何ですか?

分類Dev

コンテンツを特定の順序で表示する最善の方法は何ですか?

分類Dev

Javaでコンソール入力を取得するための最良の方法は何ですか?

分類Dev

Unicodeをコンソールに出力する最良の方法は何ですか?

分類Dev

コードレビュー:このJavaプログラムを解決するための最善の方法は何でしょうか?

分類Dev

アンギュラ マテリアル 2/4 でデータ テーブルを使用するための最善の回避策は何ですか?

分類Dev

CDNからアセットをインポートするか、カスタムコードと一緒にバンドルするのが最善ですか?

分類Dev

spaCyパイプラインでカスタムコンポーネントをベンチマークする最良の方法は何ですか?

分類Dev

Java:逆シリアル化でコンストラクタが呼び出されないのはなぜですか?最善の回避策は何ですか?

分類Dev

Goプログラムに静的リソースをバンドルする最良の方法は何ですか?

分類Dev

Javaでリフレクションを通じてプライベートフィールドを設定するための最短、最善の、クリーンな方法は何ですか?

分類Dev

Pythonコマンドラインツールを配布する最良の方法は何ですか?

分類Dev

コンピュータの速度を上げるには何が最善でしょうか。つまり、RAMを増やすか、SSDをコンピュータにインストールする必要があります。

分類Dev

Xamarinでアイコンベースのカスタムツールバーを実装するための最良の方法は何ですか?

分類Dev

JavaのBufferedReaderオブジェクトからコンテンツ全体を抽出する最善の方法は何ですか?

分類Dev

ランタイムで地形データをファイルに保存するための最良の方法は何ですか?

分類Dev

Javaで日付とタイムスタンプを操作する最良の方法は何ですか?

分類Dev

QWebEngineViewエラーからのコンソール出力を抑制する方法は?

分類Dev

関数内でPythonのランダムモジュールを初期化する最善の方法

分類Dev

CコールバックをC ++ 11インターフェイスでラップする最良の方法は何ですか?

分類Dev

Zendコントローラー内からフォームを追加する最良の方法は何ですか?

分類Dev

RascalでJavaファイルのコメントを無視する最良の方法は何ですか?

分類Dev

コンソールアプリをAzureトリガーに変換する最良の方法は何ですか

分類Dev

カスタムツールバーに戻るボタンを追加する最良の方法は何ですか?

分類Dev

Javaコレクションをフィルタリングする最良の方法は何ですか?

分類Dev

Cで未使用の変数に対するコンパイラの警告を抑制する方法は?

分類Dev

「サーバーからの追加属性:スタイル」をコンソールで警告する修正方法

Related 関連記事

  1. 1

    空の無限ループに対するコンパイラの動作を決定するための最善のアプローチは何ですか?

  2. 2

    特定のインスタンスを見つける、最善のアプローチは何ですか

  3. 3

    この「インスタンスメソッドから静的フィールドに書き込む」findbugs警告を修正する最良の方法は何ですか?

  4. 4

    コンテンツを特定の順序で表示する最善の方法は何ですか?

  5. 5

    Javaでコンソール入力を取得するための最良の方法は何ですか?

  6. 6

    Unicodeをコンソールに出力する最良の方法は何ですか?

  7. 7

    コードレビュー:このJavaプログラムを解決するための最善の方法は何でしょうか?

  8. 8

    アンギュラ マテリアル 2/4 でデータ テーブルを使用するための最善の回避策は何ですか?

  9. 9

    CDNからアセットをインポートするか、カスタムコードと一緒にバンドルするのが最善ですか?

  10. 10

    spaCyパイプラインでカスタムコンポーネントをベンチマークする最良の方法は何ですか?

  11. 11

    Java:逆シリアル化でコンストラクタが呼び出されないのはなぜですか?最善の回避策は何ですか?

  12. 12

    Goプログラムに静的リソースをバンドルする最良の方法は何ですか?

  13. 13

    Javaでリフレクションを通じてプライベートフィールドを設定するための最短、最善の、クリーンな方法は何ですか?

  14. 14

    Pythonコマンドラインツールを配布する最良の方法は何ですか?

  15. 15

    コンピュータの速度を上げるには何が最善でしょうか。つまり、RAMを増やすか、SSDをコンピュータにインストールする必要があります。

  16. 16

    Xamarinでアイコンベースのカスタムツールバーを実装するための最良の方法は何ですか?

  17. 17

    JavaのBufferedReaderオブジェクトからコンテンツ全体を抽出する最善の方法は何ですか?

  18. 18

    ランタイムで地形データをファイルに保存するための最良の方法は何ですか?

  19. 19

    Javaで日付とタイムスタンプを操作する最良の方法は何ですか?

  20. 20

    QWebEngineViewエラーからのコンソール出力を抑制する方法は?

  21. 21

    関数内でPythonのランダムモジュールを初期化する最善の方法

  22. 22

    CコールバックをC ++ 11インターフェイスでラップする最良の方法は何ですか?

  23. 23

    Zendコントローラー内からフォームを追加する最良の方法は何ですか?

  24. 24

    RascalでJavaファイルのコメントを無視する最良の方法は何ですか?

  25. 25

    コンソールアプリをAzureトリガーに変換する最良の方法は何ですか

  26. 26

    カスタムツールバーに戻るボタンを追加する最良の方法は何ですか?

  27. 27

    Javaコレクションをフィルタリングする最良の方法は何ですか?

  28. 28

    Cで未使用の変数に対するコンパイラの警告を抑制する方法は?

  29. 29

    「サーバーからの追加属性:スタイル」をコンソールで警告する修正方法

ホットタグ

アーカイブ