为了账号安全,请及时绑定邮箱和手机立即绑定

带字典和空指针的范围

带字典和空指针的范围

慕斯709654 2023-04-13 15:47:10
HashMap我在 FX 程序的启动方法中暂时显示信息时遇到问题。public class stack extends Application{    String mCurrentLocation; // Store current location    // Map to store name as keys and easting and northing as values    HashMap<String, List <Double>> dict = new HashMap<>();    public static void main(String[] args) {        stack mainObject = new stack();        mainObject.run();// Method where the program is built        launch(args);    }    public void start(Stage primaryStage) throws Exception{        System.out.println("In in startFX: "); // debugging only        System.out.println(dict);           // debugging only        // More fx code    }    private void run(){        System.out.println("In main");        System.out.println(dict);        //Read Northing and Easting input received from a txt file        try{            Scanner scanner = new Scanner(new             File("NorthingAndEastings.txt"));            while(scanner.hasNext()){                List<Double> coordinates = new ArrayList<>();                String name = scanner.next(); // key                Double easting = scanner.nextDouble();                coordinates.add(easting); // list(0)                Double northing = scanner.nextDouble();                coordinates.add(northing); //list(1)                this.dict.put(name, coordinates);             }        scanner.close();        } catch(FileNotFoundException e){            System.out.println("Sorry, could not open"             + "'NorthingAndEastings.txt' for reading. Stopping");            System.exit(-1);        }        // For debugging only        for (Map.Entry me : dict.entrySet()){            System.out.println("Name: "+me.getKey() + " Loc: " +                          me.getValue());        }    }}在run()首先在 main 中调用的方法中,HashMap成员变量是从文本文件中填充的。但是当代码转到我想显示HashMap项目的 FX 时,字典是空的。我得到{};
查看完整描述

2 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

launch类中的方法Application将启动堆栈类的一个新实例,该实例将有一个空的dict. 如果您希望启动的应用程序保留填充的值而dict不是创建dictstatic map填充您的dictin start 方法。

希望这可以帮助。


查看完整回答
反对 回复 2023-04-13
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

我不确定,但我认为问题可能是由stack mainObject = new stack();- 您可能正在dict为您认为在start.



查看完整回答
反对 回复 2023-04-13
  • 2 回答
  • 0 关注
  • 105 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信