熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

getter setter命名規則重定義

2022-06-13   來源: Java核心技術 
    奮斗到了凌晨兩點半終於把最近項目需要的一個需求搞定了因為客戶端與數據庫之間的一個數據服務框架命名規則不符合java的命名規則所以這裡需要做一個轉換大概功能實現了算法方面還有待優化
   
    package readandwrite;
   
    import javaioBufferedReader;
   
    import javaioBufferedWriter;
   
    import javaioFile;
   
    import javaioFileInputStream;
   
    import javaioFileWriter;
   
    import javaioIOException;
   
    import javaioInputStreamReader;
   
    import javautilArrayList;
   
    import javautilregexPattern;
   
    public class ReadAndWrite {
   
    private static BufferedReader br;
   
    private static BufferedWriter bw;
   
    /**
   
    * @param args
   
    * @throws IOException
   
    *
   
    * 兩個問題 javabean非規范命名 如開頭大寫 時間 Timestamp將導致的插入問題!!!!!!
   
    */
   
    public static void main(String[] args) throws IOException {
   
    File dir = new File(d:\\test\\hibernate\\
   
    String newPath = d:\\test\\hibernate_new\\;
   
    File file = new File(newPath)
   
    if(!fileexists()) {
   
    filemkdir()//創建文件夾
   
    }
   
    File file[] = dirlistFiles()
   
    for (int i = ; i < filelength; i++) {
   
    if(file[i]isDirectory()) {//文件夾直接跳過
   
    continue;
   
    }
   
    String filename = file[i]getName()
   
    br = new BufferedReader(new InputStreamReader(new FileInputStream(file[i]getAbsolutePath())))
   
    File f = new File(newPath+filename)
   
    if(fexists()){
   
    fdelete()//刪除舊文件避免重復寫入
   
    }
   
    fcreateNewFile()
   
    FileWriter fw = new FileWriter(ftrue)
   
    bw = new BufferedWriter(fw)
   
    if(javaequals(exn(filename))) {//解析實體類
   
    String data = ;
   
    while((data = ())!=null)
   
    {
   
    bwwrite(split(data)+\n
   
    bwflush()
   
    }
   
    } else if(xmlequals(exn(filename))) {//解析映射文件
   
    String data = ;
   
    while((data = ())!=null)
   
    {
   
    bwwrite(sp(data)+\n
   
    bwflush()
   
    }
   
    }
   
    }
   
    }
   
    /*


   
    * 獲取文件擴展名
   
    */
   
    public static String exn(String filename) {
   
    int k = filenamelastIndexOf(
   
    if(k> && k<(filenamelength())) {
   
    return filenamesubstring(k+
   
    } else {
   
    return ;
   
    }
   
    }
   
    /*==============================================解析java實體類======================================================*/
   
    /*
   
    * 拆分關鍵詞變小寫
   
    * 規則將帶有駝峰格式的子串變小寫
   
    */
   
    public static String split(String s) {
   
    String data ;
   
    String reg = \\s|\\|\\|\\;|\\(|\\)|\\{|\\}|\\\;
   
    String[] word = ssplit(reg)//java標識符
   
    ArrayList<String> tag = new ArrayList<String>()
   
    String[] tem = ssplit(
   
    // 保存標點符號
   
    for(int i=; i<temlength; i++)
   
    {
   
    if(tem[i]matches(reg)) {
   
    tagadd(tem[i])
   
    }
   
    }
   
    int k = ;
   
    for (int i = ; i < wordlength; i++) {
   
    String fw = format(word[i])
   
    if(i < tagsize()) {
   
    data += fw+tagget(i)
   
    } else {
   
    data += fw;
   
    }
   
    k = i;
   
    }
   
    if(tagsize() > k) {
   
    for (int i = k+; i < tagsize() i++) {
   
    data += tagget(i)
   
    }
   
    }
   
    return data;
   
    }
   
    /*
   
    * 駝峰格式子串去大寫
   
    */
   
    public static String format(String str) {
   
    String reg = ([az]+[AZ][az]+)*;
   
    Pattern p = pile(reg)
   
    if(pmatcher(str)matches()) {
   
    return strtoLowerCase()
   
    }
   
    return str;
   
    }
   
    /*==============================================解析hbmxml映射文件======================================================*/
   
    /*
   
    * 拆分關鍵詞變小寫
   
    * 將 組合 id name = || property name = 雙引號中的屬性值變小寫
   
    */
   
    public static String sp(String str) {
   
    if(ntains(<id name) || ntains(<property name)) {
   
    return split(str)
   
    }
   
    return str;
   
    }
   
    }


From:http://tw.wingwit.com/Article/program/Java/hx/201311/26132.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.