在Java中有没有优雅的方法来建立字符串和整数之间的关系?

在Java中有没有优雅的方法来建立字符串和整数之间的关系?,java,Java,我有一个类,它有许多字符串类型的字段。我想为所有这些字段编写一个方法作为setter,所以我需要一个开关。我的问题来了,如何将字段名映射成一个整数以适应开关?我不想要Integer.parseInt(),因为我不知道字符可能是什么,也无法选择合适的基数。我也不想手动构建地图。有什么简便的窍门吗?你们可以使用一个包含setter和getter的列表。列表可以容纳任何类型的对象 List<Employee> empList = new ArrayList(Employee);

我有一个类,它有许多字符串类型的字段。我想为所有这些字段编写一个方法作为setter,所以我需要一个开关。我的问题来了,如何将字段名映射成一个整数以适应开关?我不想要
Integer.parseInt()
,因为我不知道字符可能是什么,也无法选择合适的基数。我也不想手动构建地图。有什么简便的窍门吗?

你们可以使用一个包含setter和getter的列表。列表可以容纳任何类型的对象

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
List employist=new ArrayList(员工);
公共列表getEmpList(){
返回雇主;
}
public void setEmpList(列表empList){
this.empList=empList;
}
在你的员工课上
雇员
字符串名
字符串姓氏
字符串地址
年龄

为什么不在开关盒本身中使用字符串?您不需要使用在字符串和整数之间建立任何关系。Java7在内部维护这一点

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

如果你真的想在字符串和整数之间保持一个良好而有效的关系,这样你就可以在switch中使用它了-看看switch使用字符串的实现,检查它的字节码-

为什么不像其他人那样,把字段名编码到方法名中,而不是参数:

public void setXXX(int xxx) // sets XXX
public void setYYY(int yyy) // sets YYY

如果编写一个枚举,其中成员的名称与输入字符串完全相同:

enum MyEnum { CASE_1, CASE_2 }
然后,只需打开MyEnum.valueOf(inputString):


编码是一个方便的技巧吗?不仅仅是setter,我想用它作为一个统一的修改接口。
switch (MyEnum.valueOf(inputString)) {
  case CASE_1: setCase1Field(); break;
  case CASE_2: setCase2Field(); break;
}