为什么我的覆盖方法无论放置在什么地方都不起作用?java [duplicate]

问题描述 投票:0回答:1
public void setCustomerNumber(int customerNumber) {
        this.customerNumber = customerNumber;
    }

        public static void main(String[] args) {
            ArrayList<Customer> price = new ArrayList<>();
            BaseQuery order = new BaseQuery("root", "googleplex");
            String m = "";
            try {
                ResultSet rs = order.useTable("customers");
                ResultSet rs1 = order.useTable("payments");
                while (rs.next()) {
                    Customer customer = new Customer();
                    customer.setCustomerNumber(rs.getInt("customerNumber"));
                    customer.setFirstName(rs.getString("contactFirstName"));
                    customer.setLastName(rs.getString("contactLastName"));
                    customer.setSalesRepEmployeeNum(rs.getInt("salesRepEmployeeNumber"));
                    //int cn = rs.getInt("customerNumber");
                    //int pr = rs.getInt("orderNumber");
                    //System.out.println(cn);
                    //System.out.println(customerNumber);
                    price.add(customer);


                 }
                for (int i = 0; i < price.size(); i++) {
                    System.out.println();
                }
                    //System.out.println(price.toString());

            } catch (SQLException e) {
                e.printStackTrace();
            }

@Override
public String toString() {
    return price.toString()

我正在尝试输出ArrayList的内容,但它一直输出十六进制版本。我已经阅读了有关使用toString()或对其进行覆盖的所有答案,但是无论我将覆盖或toString()放在何处,无论哪种方式,我仍然可以获得该输出。我不能将其放置在public static void main之外,因为它随后将无法识别arraylist价格。我的代码有什么问题?

java arrays arraylist
1个回答
0
投票

@Override放在toString()上只会有所不同,如果您的类是另一个具有toString()方法的类的子类。

如果要覆盖ArrayList toString()方法,则需要创建ArrayList的子类,并从该子类中覆盖toString()方法。此外,ArrayList的任何用法随后都将由您创建的子类替换。

© www.soinside.com 2019 - 2024. All rights reserved.