emu in blogjava

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks
          一個面向對象的語言往往都是通過package把對象組織起來的,但是很奇怪居然沒有找到groovy的package方面的資料,難道groovy不支持?那么我們怎么用groovy來設計負責一點的程序呢?還是做試驗試試吧:

          Dog.groovy:

           1package com
           2class Dog {
           3    public def name;
           4    def bark ()  {
           5        println("barking")
           6    }

           7    def say ()  {
           8        println("My name is "+name);
           9    }

          10}

          11


          嗯,一只會說一句話的狗,還回吠哦。

          編譯一下看看有沒有錯: groovyc Dog.groovy
          嗯,沒有錯,而且在當前目錄下生成了一個com目錄,其中有Dog.class文件

          再建一個類來引用這個類  trainDog.groovy:
          1dog = new com.Dog(name:"Doggie");
          2dog.bark();
          3dog.say();
          4



          運行……失敗了:

          Caught: General error during class generation: No such class: com.Dog in constructor call for class: trainDog. At [1:7] D:\groovy\mygroovy\com\trainDog.groovy

          一番努力之后,始終無法讓 trainDog.groovy運行起來,但是反編譯這兩個groovy生成的class文件看起來又很正確。算了,用java來運行它吧(還好一開始就配置了editplus下面的調試環境,下面的命令由editplus自動生成,不用自己敲了)

          D:\jdk1.5.0\bin\java.exe -classpath .;d:\groovy\groovy-1.0-jsr-01.jar;d:\groovy\lib\asm-1.5.2.jar trainDog

          果然不錯:

          ---------- java ----------
          barking
          My name is Doggie
          Normal Termination
          輸出完成(耗時 0 秒)。


          看來groovy雖然可以直接運行,卻不能直接相互引用。進行復雜應用的時候還是要先編譯好以便他們可以相互引用類文件。此外groovy編譯器會自動為包創建對應的目錄,所以所有的groovy不管分散到多少包里面都要在同一個目錄(所有包的上一層)下面編譯。

          posted on 2005-05-19 18:37 emu 閱讀(2062) 評論(3)  編輯  收藏 所屬分類: Groovy 學習筆記

          評論

          # re: Groovy 學習筆記4 package 2005-10-03 16:56 順路走過
          這個好像不是groovy的問題。
          類似的東西,偶屢試不爽。而且,前面那個Dog.groovy并不需要編譯  回復  更多評論
            

          # re: Groovy 學習筆記4 package 2005-10-04 15:03 emu
          >>這個好像不是groovy的問題
          呵呵就象朋友經常批評的,這是人品問題。我覺得這個問題上groovy沒有提供一個簡單的解決方案。

          >>類似的東西,偶屢試不爽
          是指的什么?import嗎?怎么做呢?

          >>前面那個Dog.groovy并不需要編譯
          是指的運行不需要編譯還是被其他groovy腳本import之前不需要編譯呢?  回復  更多評論
            

          # re: Groovy 學習筆記4 package 2006-04-30 16:18 theone
          這個問題我也碰到了,不完美的地方  回復  更多評論
            

          主站蜘蛛池模板: 海门市| 双流县| 库车县| 玉林市| 高邮市| 内乡县| 咸阳市| 平武县| 邯郸县| 泽州县| 铜鼓县| 新化县| 连州市| 阿坝县| 昌都县| 嘉峪关市| 阿巴嘎旗| 阿拉善右旗| 泰州市| 泰顺县| 宜宾市| 华蓥市| 晋江市| 汽车| 偃师市| 扬中市| 景泰县| 蛟河市| 广安市| 勃利县| 灌南县| 彭阳县| 萍乡市| 哈密市| 三门峡市| 合水县| 樟树市| 韶关市| 类乌齐县| 孙吴县| 巴彦县|