使用Python为Java自动化 getter-setter 生成器
封装被定义为将数据包装在一个单元中。封装可以通过将类中的所有变量声明为私有并在类中编写公共方法来设置和获取变量的值来实现。这些公共方法称为getter和setter 。在实践中,为Java中的所有变量编写 getter-setter 是一个相当耗时且重复的过程。
在这里,我们提供了一个变量名称及其数据类型的列表,我们必须为它们打印所有的 getter-setter 方法,同时遵循基本的Java编程约定。
算法 :
- 将每个变量的第一个字符更改为大写。
- 在每个更改的变量的开头添加“get”并将它们存储在列表中。
- 在每个更改的变量的开头添加“set”并将它们存储在列表中。
- 对于每个变量及其对应的数据类型,使用字符串连接打印 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;
}