在编写类的时候,经常要重复写类成员变量的构造方法和get,set方法,决定自己写一个自动生成的方法。
因为时间有限,写的方法只能实现半自动。生成以后需要修改一下,
本方法完全默认所有成员变量为String类型,如果是其他类型,则需要手动改一下类型名称。
运行结果截图如下:
import java.util.Scanner;
import java.util.Arrays;
public class AutoGetSetMethod{
public static void main(String[] args){
System.out.println("请输入您要生成get&set方法的变量名称,变量名之间用空格进行分隔");
Scanner input = new Scanner(System.in);
String str = input.nextLine();
String[] strArray = str.split(" ");
String[] strNewArray = getNewStringArray(strArray);
System.out.println("请输入类名");
String strClass = input.next();
printGetSet(strNewArray,strClass);
}
public static String[] getNewStringArray(String[] strArray){
int len = strArray.length;
int temIndex = 0;
String[] temStrAarrya = new String[len];
for(int i=0,j=0;i<len;i++){
if(!"".equals(strArray[i].trim())){
temStrAarrya[j] = strArray[i];
j++;
}
}
for(int k=0;k<len;k++){
if(!"".equals(strArray[k].trim())){
temIndex++;
}
}
String[] temStrAarryb = Arrays.copyOf(temStrAarrya,temIndex);
return temStrAarryb;
}
public static void printGetSet(String[] array,String className){
int len = array.length;
String str = "";
String strMethod = "";
String strSet = "";
String strGet = "";
System.out.println("\t// 无参构造方法");
System.out.println("\t"+"public "+className+"(){}");
System.out.println("\t// 带参构造方法");
System.out.print("\t"+"public "+className+"(");
for(int i=0;i<len;i++){
str = array[i];
if(i==(len-1)){
System.out.print("String "+str+"){");
}else{
System.out.print("String "+str+",");
}
}
System.out.println();
for(int j=0;j<len;j++){
str = array[j];
System.out.println("\t\t"+"this."+str+" = "+str+";");
}
System.out.println("\t}");
System.out.println("");
for(int k=0;k<len;k++){
str = array[k];
strMethod = str.substring(0,1).toUpperCase()+str.substring(1);
strSet = "set"+strMethod;
strGet = "get"+strMethod;
System.out.println("\t//成员变量"+str+"的Set方法");
System.out.print("\t"+"public void "+strSet+"(");
System.out.print("String "+str+"){");
System.out.println();
System.out.println("\t\tthis."+str+" = "+str+";");
System.out.println("\t}");
System.out.println("\t//成员变量"+str+"的get方法");
System.out.println("\t"+"public String "+strGet+"(){");
System.out.println("\t\treturn "+str+";");
System.out.println("\t}");
System.out.println();
}
}
}