首页 > 解决方案 > Java create Customer 函数给出随机值

问题描述

我正在系统项目中插入客户。它在tomcat中工作,是一个maven项目。自从我开始一个新项目以来;有些事情有效;有些事情没有。我做了一个 createCustomer 函数:

public static Customer createCustomer(String name){
    if (allCustomers.stream().noneMatch(e->e.getName().equals(name))) {
        Customer newCustomer = new Customer(name);
        allCustomers.add(newCustomer);
        return newCustomer;
    }
    else return null;
}

当我运行我的 BootupListener 时;我进入了:

    Customer.createCustomer("Maikol");
    Customer.createCustomer("Henk");
    nl.hu.bep.model.Customer.createCustomer("Sjon");

    System.out.println(Customer.getAllCustomers());
    System.out.println(Customer.getCustomer(1));
    System.out.println(Customer.getCustomerById(1));

这奇怪地给出了打印:

[nl.hu.bep.model.Customer@94bfdfef, nl.hu.bep.model.Customer@4263369, nl.hu.bep.model.Customer@4c37fee] nl.hu.bep.model.Customer@94bfdfef nl. hu.bep.model.Customer@94bfdfef

nl.hu.bep 是我的包标签,Customer 是 createcustomer 所在的类。为什么它不起作用?

标签: javamavenlistener

解决方案


我认为它不会提供不同的输出。

所有带有对象说明符的客户分别是 ->94bfdfef, 4263369, 4c37fee

据我们所知,最后两个输出明显表明两者都参与了Customers维护。

恕我直言,问题(如果是问题)源于保存用户的数据结构。Set例如,数据结构没有顺序。如果您HashMap将 id 与客户编号映射(使用),那么数据结构仍然没有任何保证。


推荐阅读