<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    關于groovy的一些用法


    最近使用groovy寫了一個程序生成器,因為公司原來的生成程序太原始了,直接是JSP調我們自已的業務中間件的,新生成后的程序采用了spring的框架,用到的技術主要是groovy+Template,寫的過程中也碰到了一些問題,解決后希望與大家共享.具體關于如何使用groovy以及用groovy進行模板編程,請查看IBM上的實戰groovy系列的文章.
    1.在模板文件中是不能使用閉包的,使用后可能會造成分析器的混亂.
    2.正則表達式用法之大小寫.
    一般我們使用java時都這么寫

    Pattern?pattern? = ?Pattern.compile(
    ????????????
    " Y\\s*E\\s*C\\s*X\\s* " ,?Pattern.CASE_INSENSITIVE);

    以第二參數來指明不區分大小寫,在使用groovy我發現,這招不靈了,因為在groovy中正則表達式是在語言中的
    def pattern = ~/(?i)(.*)/這樣就得到了一個pattern,如果要指定不區分大小寫,與perl,ruby語言有些不同,查jdk官方方檔得知,如上代碼加(?i)就OK了.
    注意:在groovy中可以這樣寫

    def ?matcher = ? " string " ? =~ ?pattern

    此時的pattern為串,而不能是正則表達式.
    3.java中的匿名類與groovy中的閉包
    生成程序難免要碰到與目錄相關的操作程序,一般在java中文件過濾都這么寫

    String?regex? = ? " .*查詢.*\\.ini " ;
    ????????
    final ?Pattern?pattern2? = ?Pattern.compile(regex,Pattern.CASE_INSENSITIVE);????
    ????????
    ????????File?path?
    = ? new ?File( " C:\\mydir " );
    ????????String[]?list?
    = ?path.list( new ?FilenameFilter()? {
    ????????????
    public ? boolean ?accept(File?dir,?String?name)? {
    ????????????????
    return ?pattern2.matcher( new ?File(name).getName()).matches();
    ????????????}

    ????????}
    ?);

    查遍所有groovy文檔發現并沒有直接使用閉包來完成以上程序,在groovy中用閉包代替內部類的只能用在swing類中那些listener的接口,具體細節查看官方文檔.http://groovy.codehaus.org/Groovy+Beans
    要用groovy來完成上面的程序有兩種方法,第一就是用java完成后,提供給groovy來調用,第二下直接用groovy實現,其實很簡單,代碼如下:

    def ?filter( def ?filelist){
    ?????????
    def ?col = []
    ????????filelist.each{
    ????????????
    if (it =~ " .*\\.ini " )
    ????????????????col
    << it
    ????????}
    ????????
    return ?col
    ????}

    def ?filterfile( def ?filedir, def ?fileName){
    ????????
    def ?ffile? = ?new?File(filedir,fileName)
    ????????????????
    def ?fileNames? = ?filter(ffile.list())
    ????????
    if ((?fileName? =~ ' \\d{3} ' ).matches())
    ????????????fileName?
    = ? " I${fileName} "
    ????????createSrc(fileNames,ffile,fileName)
    ????}

    主要由兩個函數完成,第一個過濾,第二個匹配.

    posted on 2006-09-16 09:38 The One 閱讀(1041) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2006年9月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    導航

    統計

    常用鏈接

    留言簿(3)

    隨筆檔案(11)

    相冊

    我的郵箱

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费A级毛片无码A∨免费| 免费看黄网站在线看 | 亚洲av无码乱码国产精品fc2| 丰满少妇作爱视频免费观看| 无码精品国产一区二区三区免费| 国产成人亚洲精品91专区手机 | 亚洲精品国产成人99久久| 香蕉免费在线视频| 成人奭片免费观看| 亚洲色成人中文字幕网站| 亚洲国产乱码最新视频| 一区二区无码免费视频网站| 亚洲日韩精品无码专区加勒比 | 区久久AAA片69亚洲| 亚洲一卡一卡二新区无人区| 18禁超污无遮挡无码免费网站国产| 亚洲一卡二卡三卡四卡无卡麻豆| aa在线免费观看| 亚洲综合AV在线在线播放| 亚洲精品免费在线观看| 亚洲欧洲精品在线| 女人18特级一级毛片免费视频| 国产亚洲一卡2卡3卡4卡新区 | 国产成人AV片无码免费| 蜜臀91精品国产免费观看| 亚洲国产成人精品不卡青青草原| 最近2019免费中文字幕视频三| 亚洲国产成人久久精品app| 韩国欧洲一级毛片免费| 国产美女视频免费观看的网站| 亚洲精品免费观看| 午夜免费福利网站| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 1区1区3区4区产品亚洲| 毛片免费观看网址| 亚洲电影免费观看| 国产一级特黄高清免费大片| 中国人免费观看高清在线观看二区| 久久亚洲伊人中字综合精品| 久久久免费观成人影院| 亚洲资源在线视频|