「静的な方法でアクセスする必要があります」

フランク・ハリス:

私は、私は他の場所で使用する静的メソッドの多くが含まれている、おそらく不必要に面倒な名を持つクラスを、持っています。

の多くの私のコードを埋めるのではなく

VeryUnnecessarilyLongCumbersomeName.doThingFoo();
VeryUnnecessarilyLongCumbersomeName.doThingBar();
VeryUnnecessarilyLongCumbersomeName.doThingEgg();
VeryUnnecessarilyLongCumbersomeName.doThingSpam();

私はむしろだろう

VeryUnnecessarilyLongCumbersomeName thing = new VeryUnnecessarilyLongCumbersomeName();
thing.doThingFoo();
thing.doThingBar();
thing.doThingEgg();
thing.doThingSpam();

ただし、これは警告を取得します

"the static method doThingFoo() should be accessed in a static way."

私は、複数のソリューションがここにあります知っています。より良いクラス名を使用します。それは静的ではないことを確認します。それは単なる警告なので、それを無視します。

しかし、私は実際にそれを警告すべきだと思いません。それをこのような原因をどのような害をやっていますか?上記の解決策の一つではない私のコードより少ない不格好を作るために、よりエレガント/正しい方法はありますか?

注:私は、これは正当かもしれない疑いcoding-styleタグを、したがって、オフトピックとみなされると拒否されます。しかし私は、このような質問のためにここにそこの部屋を考えていたので、私はy'allのにそれを任せます。

Nexevis:

それは技術的にはありませんが、有害な、それは技術的にために動作し、これに伴う問題は、それが誤解されており、インスタンスがいることを任意の値がthing含まれ、実際にメソッドの結果のためには全く関係ありません。

典型的なJavaの大会:

スルー方式にアクセスするとき、インスタンス、一つの結果があることが予想依存インスタンスの値に関する。

メソッドにアクセスする場合は、クラス名、1は結果があることを期待する独立した任意のインスタンスの値の。

あなたのやり方で:

あなたはを通してメソッドにアクセスしている場合、それがあることを期待して独立した任意のインスタンスの。

なぜインスタンスの独立したメソッドのインスタンスを使うのか?それは誤解されている理由です。私がアクセスするのではなく、クラス名を短くしようとすることをお勧めstaticインスタンスを通して方法を。

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=6330&siteId=1