📜  使用Python为Java自动化 getter-setter 生成器

📅  最后修改于: 2022-05-13 01:55:23.081000             🧑  作者: Mango

使用Python为Java自动化 getter-setter 生成器

封装被定义为将数据包装在一个单元中。封装可以通过将类中的所有变量声明为私有并在类中编写公共方法来设置和获取变量的值来实现。这些公共方法称为gettersetter 。在实践中,为Java中的所有变量编写 getter-setter 是一个相当耗时且重复的过程。
在这里,我们提供了一个变量名称及其数据类型的列表,我们必须为它们打印所有的 getter-setter 方法,同时遵循基本的Java编程约定。
算法 :

  1. 将每个变量的第一个字符更改为大写。
  2. 在每个更改的变量的开头添加“get”并将它们存储在列表中。
  3. 在每个更改的变量的开头添加“set”并将它们存储在列表中。
  4. 对于每个变量及其对应的数据类型,使用字符串连接打印 getter 和 setter 方法。

下面是实现。

Python3
# Function to print getter and setter methods
# for variables according to Java
def print_getter_setter(variables, datatypes):
  
    # List to store getVariable
    getters = []
  
    # List to store setVariable
    setters = []
  
    # Iterate for every variable
    for var in variables:
  
        # Prepend "get" in every variable and change
        # the first character to uppercase
        getter = "get" + var[0].capitalize() + var[1:]
        getters.append(getter)
  
        # Prepend "set" in every variable and change
        # the first character to uppercase
        setter = "set" + var[0].capitalize() + var[1:]
        setters.append(setter)
  
      
    for i in range(len(variables)):
         
        # Print the getter method
        print("public " + datatypes[i] + " " + getters[i] +
              "() {\n\treturn " + variables[i] + ";\n}\n")
  
        # Print the setter method
        print("public void " + setters[i] + "(" + datatypes[i] +
              " " + variables[i] + ") {\n\tthis." + variables[i] +
              " = " + variables[i] + ";\n}\n")
 
# Driver function
if __name__=="__main__":
    # The list of variables
    variables = ["abc", "empId", "GFG", "x"]
  
    # And the list of the variables's corresponding
    # datatypes
    datatypes = ["int", "float", "double" , "String"]
  
    print_getter_setter(variables, datatypes)


输出 :

public int getAbc() {
    return abc;
}

public void setAbc(int abc) {
    this.abc = abc;
}

public float getEmpId() {
    return empId;
}

public void setEmpId(float empId) {
    this.empId = empId;
}

public double getGFG() {
    return GFG;
}

public void setGFG(double GFG) {
    this.GFG = GFG;
}

public String getX() {
    return x;
}

public void setX(String x) {
    this.x = x;
}