0

タイプ String の多くのフィールドを持つクラスがあります。これらすべてのフィールドのセッターとしてメソッドを書きたいので、スイッチが必要です。これが私の質問です。フィールド名を整数にマップしてスイッチに合わせるにはどうすればよいですか? char が何であるかわからInteger.parseInt()ず、適切な基数を選択できなかったため、 は必要ありません。私も手動でマップを作成したくありません。何か便利なトリックはありますか?

4

4 に答える 4

1

スイッチケース自体に文字列を使ってみませんか?そのために文字列と整数の間にmakeを使用する必要はありません。Java7はこれを内部的に維持します。

switch(string){
case "one":
  -- do something--
  break;
case "two":
  -- do something --
  break;
....
..

また、文字列と整数の関係を効果的に維持して、スイッチで使用できるようにする場合は、文字列を使用したスイッチの実装を確認し、そのバイトコードを確認してください

于 2012-08-11T08:19:23.113 に答える
0

メンバーが入力文字列とまったく同じ名前である列挙型を作成する場合:

enum MyEnum { CASE_1, CASE_2 }

次に、単にスイッチを入れることができますMyEnum.valueOf(inputString)

switch (MyEnum.valueOf(inputString)) {
  case CASE_1: setCase1Field(); break;
  case CASE_2: setCase2Field(); break;
}
于 2012-08-11T10:37:45.200 に答える
0

他の人がしていることをして、フィールド名をパラメーターではなくメソッド名にエンコードしてみませんか。

public void setXXX(int xxx) // sets XXX
public void setYYY(int yyy) // sets YYY
于 2012-08-11T08:23:03.100 に答える
0

セッターとゲッターを持つリストを使用できます。リストはあらゆる種類のオブジェクトを保持できます。

List<Employee>  empList = new ArrayList(Employee);

    public List<Employee> getEmpList() {
            return empList;
        }


        public void setEmpList(List<Employee> empList) {
            this.empList = empList;
        }

In your Employee Class 

Employee
String firstName
String lastName
String address
int age
于 2012-08-11T08:06:03.067 に答える