コンパイラは、書式文字列と必要な型とパラメータにアクセスできます。だから私はvarargsの欠落しているパラメータを示すいくつかの方法があるだろうと仮定しています...ケースのサブセットの場合でも。実行時に渡されたvarargsが問題を引き起こす可能性があることを示すために、eclipseまたは別のIDEのためにはいくらかですか?コンパイル時に文句を言うstring.formatを取得する方法
8
A
答えて
10
FindBugsが問題を解決できるかのように見えます。書式文字列に関連する警告カテゴリがいくつかあります。ところで
1
Javaコンパイラには、StringFormatパラメータの意味論的な知識が組み込まれていないため、コンパイル時にこれらをチェックすることはできません。 StringFormatは別のクラスであり、String.formatは別のメソッドであり、指定された書式文字列は他の文字列と同じものです。
しかし、ええ、私はあなたの痛みを感じ、過去のカップルの日にこれらの同じ問題に遭遇しました。彼らがしなければならないことは、パラメータの数について「あまり注意を払わない」ようにして、末尾の%sマーカーを置き換えないようにするだけです。
+0
おそらくコンパイラは言う...真実だが、多分そこにいくつかの静的解析ツールがあるのだろうか? – mafalda
関連する問題
- 1. コンパイル時にシングルトンオブジェクトのクラスを取得する方法は?
- 2. Valgrindはstring.append(string)に文句を言う。
- 3. Jenkinsがnullの文句を言うM2_HOME
- 4. powershellにstring.formatを文字列配列で使用する方法
- 5. フラッシュでコンパイル時に文字列データをロードする方法は?
- 6. scalaz関数を使用して折りたたみをコンパイルすると、スカラコンパイラが奇妙に文句を言う
- 7. Guyrati言語(他の言語)のiosの文字列から単一文字を取得する方法
- 8. IE7がjavacriptのラベルIDについて文句を言う
- 9. STL for_each引数リストについて文句を言う
- 10. QtでコンパイルするOpenGL ES2を取得する方法
- 11. Cythonでコンパイル時に整数のサイズを取得する
- 12. ブラウザが無効なhtml入力で文句を言うようにする
- 13. 条件付きコンパイル:コンパイル時にパッケージ名を取得してテストする
- 14. jadeテンプレートファイルをコンパイルして文字列を取得するには?
- 15. C言語でアルファベットで文字の位置を取得する方法は?
- 16. 文字列の最後から句読点を取得する
- 17. String.Formatのは、文句を言わない私は何千人も中にカンマ(例:1234)と、それを印刷しようとするXMLフィールドを持つ
- 18. Javascriptが文句を言わない
- 19. PHPループは文句を言わない
- 20. RecycleView文句を言わない更新
- 21. HTML5オーディオは文句を言わない
- 22. OpenVZのは、文句を言わない
- 23. C++でコンパイル時にデバッグコードを取り除く方法は?
- 24. Graphvizを持っていてもPyreverseが文句を言う
- 25. 時間を返すようにタイマーを取得する方法Java
- 26. pythonで日時に曜日名を取得する方法を
- 27. Javaプロジェクトでビルド/コンパイル時にWSDLを取得できますか?
- 28. 多言語ドメインモデルの取得方法
- 29. python pylintがソケットクラスsendallメソッドについて文句を言うのを防ぐ方法
- 30. MS AccessでHaving句を使用してMAX値を取得する方法
日食向上のためのニースのアイデア、。少なくとも静的なフォーマット文字列と固定サイズのvarargsをチェックできます。 –
ここで私の答えをチェックしてください - http://stackoverflow.com/questions/24769455/java-string-format-compile-time-error-checking-and-safer-alternative-それはまだ進行中のわずかな作業です –