私は、私は他の場所で使用する静的メソッドの多くが含まれている、おそらく不必要に面倒な名を持つクラスを、持っています。
の多くの私のコードを埋めるのではなく
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のにそれを任せます。
それは技術的にはありませんが、有害な、それは技術的にために動作し、これに伴う問題は、それが誤解されており、インスタンスがいることを任意の値がthing
含まれ、実際にメソッドの結果のためには全く関係ありません。
典型的なJavaの大会:
スルー方式にアクセスするとき、インスタンス、一つの結果があることが予想依存インスタンスの値に関する。
メソッドにアクセスする場合は、クラス名、1は結果があることを期待する独立した任意のインスタンスの値の。
あなたのやり方で:
あなたはを通してメソッドにアクセスしている場合、それがあることを期待して独立した任意のインスタンスの。
なぜインスタンスの独立したメソッドのインスタンスを使うのか?それは誤解されている理由です。私がアクセスするのではなく、クラス名を短くしようとすることをお勧めstatic
インスタンスを通して方法を。