3

いくつかの注釈を処理するソフトを書いています。注釈のパラメーターの 1 つが配列です。1 つのオブジェクトがこの配列を見つけ、それを別のオブジェクトに渡して処理します。そして、findbugs は、悪意のあるコードによって変更された可能性のあるプライベート配列を渡していると叫び始めます。質問は次のとおりです。それは本当ですか?実行時に注釈パラメータを変更できますか?

4

2 に答える 2

2

これは本当です。配列への参照を渡し、配列は変更可能です。呼び出し先はこの配列を変更できます。

最善の方法は、たとえば を使用して、元の配列ではなく、その配列のコピーを呼び出し先に渡すことArrays.copyOf()です。

または、配列の代わりに a を返し、ラッパーListを使用することもできます。これにより、不要なコピーが回避されます。Collections.unmodifiableList()

于 2012-12-23T14:20:35.950 に答える