軟件工程實(shí)踐者

          統(tǒng)計(jì)

          留言簿

          友情鏈結(jié)

          閱讀排行榜

          評(píng)論排行榜

          Groovy:Invalid duplicate class definition of class....The type xxx is already defined..

          當(dāng)我們寫Groovy腳本代碼的時(shí)候,有時(shí)會(huì)發(fā)生編譯錯(cuò)誤,如下:

          - Groovy:Invalid duplicate class definition of class XXX : The source XXXX\XXX.groovy contains at least two 
          definitions of the class XXX.
          - The type XXX is already defined

          原因在于Groovy會(huì)把.groovy代碼文件作為腳本或類定義來(lái)處理,例如如下代碼:

          class Order {
              def security
              def value
              private buy_sell(su, closure) {
                  security = su[0]
                  quantity = su[1]
                  closure()
              }
              def getTo() {
                  this
              }
          }
          def methodMissing(String name, args) {
              order.metaClass.getMetaProperty(name).setProperty(order, args)
          }
          def getNewOrder() {
              order = new Order()
          }

          Integer.metaClass.getShares = { -> delegate }

          Groovy會(huì)把上述代碼作為腳本處理,同時(shí)缺省用文件名來(lái)作為一個(gè)外圍類類包括整個(gè)腳本程序,此時(shí),如果該文件名恰好也是Order的話,那么就會(huì)出現(xiàn)重復(fù)的類定義錯(cuò)誤提示。
          解決辦法是將腳本文件名取另外一個(gè)不同的名字。

          posted on 2016-08-31 09:00 軟件工程實(shí)踐者 閱讀(1080) 評(píng)論(0)  編輯  收藏 所屬分類: 軟件設(shè)計(jì)

          主站蜘蛛池模板: 瑞昌市| 宿州市| 开封县| 吉木萨尔县| 五莲县| 曲松县| 庄河市| 玛多县| 邓州市| 嵩明县| 桃园市| 芦溪县| 凌海市| 上高县| 彭泽县| 清徐县| 斗六市| 蒲江县| 平潭县| 沙河市| 白朗县| 阳朔县| 土默特左旗| 理塘县| 长宁区| 邢台县| 宁陵县| 白城市| 双牌县| 三门县| 蒲城县| 枞阳县| 汝州市| 墨竹工卡县| 南京市| 桐乡市| 湛江市| 韶关市| 咸丰县| 红原县| 安岳县|