3

の現在のAPIに到達するために使用されているロジックに少し混乱していますaddLayoutComponent()

2つのメソッドがあります。1つは文字列とコンポーネントを取得し、もう1つはオブジェクトとコンポーネントを取得します(ただし、そのオブジェクトが文字列でない限り、実行時に失敗します)。

ただし、非推奨となったのは文字列を受け取るものであり、オブジェクトを受け取るものではありません。私の考えでは、これは間違った方法です-文字列を受け取り、他のメソッドを非推奨にするタイプセーフメソッドを保持してみませんか?

そして、これに続いて、この場合、非推奨の方法を使用し、タイプセーフ保証が付属しているときに警告を抑制する方が良いですか?

4

1 に答える 1

2

これは、下位互換性とによって導入された新しいメソッドによるものだと思いますLayoutManager2

元々、コンポーネントのすべての制約は、文字列、、、などとしてエンコードされて"CENTER""EAST"ました。のために、などCardLayoutの名前にこれらの文字列を使用することは理にかなっています。"SETTINGS_CARD""MAIN_CARD"

LayoutManager2のリワークが入って来ましたLayoutManagerGridBagConstraintsこの2番目のバージョンでは、他のタイプの制約(など)も考慮に入れたいと考えていました。

つまり、CardLayoutわかりました。これらの新しい新しいメソッドを使用しますが、他に何も必要ないため、文字列に依存します」と表示されます。

その後、Stringバージョンが不要になったため、非推奨にすることを選択しました。(少なくともそれは私の推測です。)

そして、これに続いて、この場合、非推奨の方法を使用し、タイプセーフ保証が付属しているときに警告を抑制する方が良いですか?

私の意見では、非推奨のメソッドを使用することは、「Sun /OracleAPIアーキテクトよりもよく知っている」と同じです。。言い換えれば、私は非推奨のメソッドに近づかないでしょう。(他のプログラマーのほかに、なぜ@SupressWarningあなたのコードにが含まれているのか不思議に思うでしょう。)

于 2011-08-23T11:21:23.930 に答える