昨日から Java の学習を始めたわけではありませんが、突然、元にvoid戻れるのであれば、なぜメソッドを使用するのでしょうthisか? と思いました。そうすれば、オブジェクトのメソッド呼び出しを連鎖させ、コードをより読みやすくすることができます (このアプローチはすでに人気を得ていることを知っていますが、ほとんどが不変オブジェクトであり、Java Beansの規則については忘れておきましょう)。私が必要だと思う唯一のケースvoidは、静的メソッドです。
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 に答える