4

useXxx()Javaメソッド名の前にvsを付けるための一般的なガイドラインはありsetXxx()ますか?

setDelimiter()Scannerクラスのメソッドを呼び出そうとしましたが、名前が付けられていることがわかりましたuseDelimiter()。JavaDocは、このメソッドを「このスキャナーの区切りパターンを設定します...」と説明しています。

では、なぜuseXxx()ではなくsetXxx()

4

5 に答える 5

2

メソッドに名前を付ける、またははJavaBeansの単なる規則.setXxx()です。クラスをBeanとして明示的に使用しない場合(そして確かにBeanとして使用しない場合)、メソッドに好きな名前を付けることができます。.getXxx()Scanner

また、この.useDelimiter()メソッドはを返しますがthis、JavaBeansセッターはを返しvoidます。このメソッドがBeanの規則に従っている場合、次のように書くことはできません。

Scanner scanner = new Scanner(System.in).useDelimiter(xxx);

クラスをBeanにすることを意図している場合を除いて、メソッド名の唯一の実際の規則は、メソッド名が自明であるということです。

于 2013-01-10T17:44:55.893 に答える
2

これは標準のセッター方式ではありません。delimPatternを設定し、Scannerオブジェクトを返します

 public Scanner useDelimiter(Pattern pattern) {
    delimPattern = pattern;
    return this;
}
于 2013-01-10T17:46:53.133 に答える
0

「setXXX()」および「getXXX()」は「従来型」以上のものです。名前は、JavaBeansによって「getter」および「setter」メソッドとしても認識されます。クラスがたまたまJavaBeanである場合。クラス「スキャナー」はそうではありません:)

そうでなければ、それはただの問題の好みです。

于 2013-01-10T17:45:58.390 に答える
0

それは間違いなく矛盾しています。

setX通常、アクセサーは/ getX(またはisXブール値)の形式であると予想されます。これはJavaBeans 規則の一部です。多くのフレームワークとツールは、このように動作するように明示的にコーディングされており、無視すると相互運用性が失われます。

ただし、間違っているわけではないことに注意してください。しかし、それでも相互運用性のレベルを維持しようとします。

于 2013-01-10T17:45:03.913 に答える
0

Java setXxx() メソッドでは、「set」を使用して値を設定します。たとえば、マネージャーの ID を設定します。

 public void setManagerID()
 {
      String managerID = null;

    managerID = JOptionPane.showInputDialog(null,"Input an ID:");

  }
于 2013-01-10T17:54:30.210 に答える