有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从main中的其他类调用方法

我在Location类中设置了一个方法来解析xml文件。但是当我试图从main方法中的main类调用该方法时,它似乎没有被调用

我在locObj.parseNetwork();上设置了一个断点,但它从未被触发,println在它执行之后,所以不确定问题可能是什么

有人知道为什么不调用parseNetwork

以下是我从main调用方法的方式:

public class GrailQuestMain {

    public static void main(String[] args) throws Exception {

        //Parse in the xml file
        Location locObj = new Location();
        locObj.parseNetwork();

        //Start screen prompt
        System.out.println("********************************GRAIL QUEST************************************");
        System.out.println("-------------------------------------------------------------------------------");
        System.out.println("-------------------------------------------------------------------------------");
        System.out.println("Hit enter to begin your quest to Cyprus..");
        new Scanner(System.in).nextLine();
        System.out.println("Loaded..");

    }      
}

这是Location类中的实际方法,两个类都在同一个包中:

public class Location implements Lookable{
    private List<AbstractGameCharacter> observers = new ArrayList<AbstractGameCharacter>();
    private List<Thing> objects = new ArrayList<Thing>();
    private List<Exit> exits = new ArrayList<Exit>();
    private String name;
    private String description;

    public void enter(AbstractGameCharacter gc){
        observers.add(gc);
    }

    public void exit(GameChacter gc){
        observers.remove(gc);
    }


    public void parseNetwork() throws ParserConfigurationException, SAXException, IOException{

         //Get the DOM Builder Factory
        DocumentBuilderFactory factory = 
            DocumentBuilderFactory.newInstance();

        //Get the DOM Builder
        DocumentBuilder builder = factory.newDocumentBuilder();

        //Load and Parse the XML document
        //document contains the complete XML as a Tree.
        Document document = 
          builder.parse(new File("network.xml"));

        NodeList locationName = document.getElementsByTagName("location name");

    }



}

在方法调用之前添加了println并获得输出,但方法似乎仍然没有被调用:

output


共 (1) 个答案

  1. # 1 楼答案

    考虑到上面的代码应该成功地调用parseNetwork(),我想你想检查一下你把断点放在哪里?或者把一些输出放到parseNetwork()中,看看它是否被打印出来

    这不是因为在执行过程中抛出了任何异常,因为它将无法打印该方法调用之后的行,因为您没有处理parseNetwork()抛出的异常