簡體   English   中英

如何在Java中構建讀取XML文件的構造函數?

[英]How to build a constructor in Java that read an xml file?

我正在用Java創建一個小的棋盤游戲,我想在XML文件中實現游戲關卡(即每個關卡,關卡ID,棋盤的高度和長度以及每個單元格的定義),然后通過詢問用戶他想要玩的級別來構建棋盤。

我已經在Board類中構建了一個經典的構造函數,沒有使用XML文件,並且沒有使用if(因此我將每個級別的描述都放在了代碼中)。 問題是,每次我想添加一個關卡時,都需要再次編譯。

謝謝 !

看一下此頁面,看看它是如何在Java中完成的: Java XML Parsers Java內置了大約四個不同的解析器(在新版本中可能更多)。

現在關於構造函數:

public Board(String pathToXML) {
   // Add code parsing the XML
}

在調用構造函數之前,可以將參數作為參數發送給m​​ain方法。

public static void main(String[] args) {
    String pathToXML = args[0];
    Board b = new Board(pathToXML);
}

請記住,參數從0開始,而不是1。

簡短的答案:請勿嘗試在您的電路板構造函數中解析XML文件。

您似乎已經有了一個有效的構造函數和有效的類來為您設置板。 將這些類傳遞給Board構造函數。 讓某種工廠為您創建實例。

請勿將XML解析邏輯與棋盤游戲邏輯混在一起。 那是兩個完全不同的事情。 根據單一職責規則,應將其分開存放。

正確完成后,您應該能夠從XML文件或任何其他來源創建具有臨時配置代碼的電路板。 換句話說:數據來自哪個板塊都沒有關系。

XML文件應如下所示:

<Levels>
    <Level id="1">
    <h>2</h>
    <l>2</l>
    <plateau key="value">
      <cells>
        <cell row="0" column="0" color="black">
        </cell>
        <!-- ... -->
      </cells>
    </plateau>

使用XML解析器解析從文件中讀取的數據。 將結果傳遞給Board構造函數,例如偽代碼:

List<Level> levels = parseLevels(...);
new Board(levels.get(0));

“ parseLevels()”的實現可能很棘手。 我建議您使用JAXB來解析文件並創建數據結構。 嘗試本教程: https : //www.baeldung.com/jaxb

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM