自动生成bean
一个很简单的功能,用来自动生成bean代码
CreateBean.java
代码:
package com.auto.util; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; import java.io.UnsupportedEncodingException; import java.util.ArrayList; public class CreateBean { public CreateBean() { } public ArrayList<String> readFile(String filename) { ArrayList<String> line = new ArrayList<String>(); try { File f = new File(filename); RandomAccessFile rf = new RandomAccessFile(f, "r"); String temp; while (rf.read() != -1) { rf.seek(rf.getFilePointer() - 1); temp = new String(rf.readLine().getBytes("8859_1")); if(temp.trim().length()>1){ line.add(temp); } } rf.close(); } catch (NullPointerException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return line; } public void createBean(String filename, ArrayList<String> elements) { String reqfilename="Req_"+ filename+".java"; String path = System.getProperty("user.dir") + "\\src\\com\\business\\reqbean\\"; File f = new File(path +reqfilename); try { f.createNewFile(); StringBuffer beancode = new StringBuffer(); beancode.append("package com.business.reqbean;"); beancode.append("\r\n"); beancode.append("/**CreateBean自动生成代码*/"); beancode.append("\r\n"); beancode.append("public class Req_"+filename+" {"); beancode.append("\r\n "); for (String ts : elements) { String[] ns = ts.split(" "); beancode.append("/**"+ns[2]+"*/"); beancode.append("\r\n "); if(ns.length>4){ beancode.append("/**"+ns[4]+"*/"); beancode.append("\r\n "); } beancode.append("private "+ns[1]+" "+ns[0]+";"); beancode.append("\r\n "); beancode.append("public "+ns[1]+" get"+chargeMethod(ns[0])+"(){"); beancode.append("\r\n "); beancode.append("return "+ns[0]+";"); beancode.append("\r\n "); beancode.append("}"); beancode.append("\r\n "); beancode.append("public void"+" set"+chargeMethod(ns[0])+"("+ns[1]+" "+ns[0]+"){"); beancode.append("\r\n "); beancode.append("this."+ns[0]+" = "+ns[0]+";"); beancode.append("\r\n "); beancode.append("}"); beancode.append("\r\n "); } beancode.append("\r\n"); beancode.append("}"); RandomAccessFile rf = new RandomAccessFile(f, "rw"); rf.write(beancode.toString().getBytes("UTF-8")); rf.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } private String chargeMethod(String f){ return f.substring(0, 1).toUpperCase()+f.substring(1); } public static void main(String args[]) { CreateBean cb = new CreateBean(); ArrayList<String> elements = cb.readFile(System.getProperty("user.dir") + "\\beanDepict\\interfacename"); cb.createBean("interfacename", elements); } }
使用的时候准备一个文本文件 interfacename
内容如下
phoneNum java.lang.String手机号码 必须目前支持移动和联通
放在beanDepict目录下
运行后生成bean Req_interfacename.java
package com.business.reqbean; /**CreateBean自动生成代码*/ public class Req_interfacename { /**手机号码*/ /**目前支持移动和联通*/ private java.lang.String phoneNum; public java.lang.String getPhoneNum(){ return phoneNum; } public void setPhoneNum(java.lang.String phoneNum){ this.phoneNum = phoneNum; } }