昨日から Java の学習を始めたわけではありませんが、突然、元にvoid
戻れるのであれば、なぜメソッドを使用するのでしょうthis
か? と思いました。そうすれば、オブジェクトのメソッド呼び出しを連鎖させ、コードをより読みやすくすることができます (このアプローチはすでに人気を得ていることを知っていますが、ほとんどが不変オブジェクトであり、Java Beansの規則については忘れておきましょう)。私が必要だと思う唯一のケースvoid
は、静的メソッドです。
質問する
713 次
1 に答える
14
おそらく、いくつかのメソッドが何か (ある種の戻り値) を伝える必要があることを受け入れるでしょう。「実際に何も返したくない場合を除き、戻りたい値を返すというのは人工的で鈍いようです。その場合はthis
代わりに戻りますが、それが静的メソッドでない限り、戻りvoid
ます」.
どうですか:
- 何かを返すことが適切な場合は、それを返します
- そうでない場合は、しないでください
- (「流暢な」API が本当に理にかなっている場合には、いくらかの蠢く余地があります)
また、継承を考えてください。仮想メソッドがあるFoo()
場合、戻り値の型はFoo
の宣言型である必要があります。
public virtual SomeType Foo() {...}
をサブクラスSomeType
化し、Bar : SomeType
のインスタンスを持っているとしますBar
。
Bar obj = new Bar();
obj.Foo().SomeOtherMethodOnBar(); // ERROR hey, where did my Bar go!?!?!
ポリモーフィズムは流暢な API を尊重しません。
最終的な考えとして、実際にメソッドを連鎖させたくない場合は、すべての「ポップ」を考えてみてください...
于 2013-05-14T10:15:09.353 に答える