Java 数组值被覆盖

标签 java

我刚刚开始使用 OOP,我正在尝试创建一个程序来创建一个数组来存储三种不同类型的信息:名称、 double 和 Int。

由于某种原因,当我运行程序并输入信息时,它没有正确存储。例如,如果我在迭代 1 中输入“James”, 22.5, 4,然后在迭代 2 中输入“John”, 23.66, 8,然后打印数组,john, 23.66 和 8 打印两次。本质上,我希望数组中 i 的每次迭代都存储一组不同的值,但我似乎无法弄清楚为什么这不起作用。

*编辑以反射(reflect)答案

for(int i=0; i<boats.length; i++) {
    System.out.printf("Name: " + boats[i].getName(name) + "  " +
                       "Age: " + boats[i].getLength(length) + "  " +
                       "Length: " + boats[i].getRating(rating) + "\n\n");
}
in.close();

** 类代码

Public Class file
    public String getName(String name) {
        return name;
    }

    public double getLength(double length) {
        return length;
    }

    public int getRating(int rating) {
        return rating;
    }

最佳答案

您的 getter 返回您传入的参数,而不是 setter 存储的值。

作为参数传递的变量中的值是您输入的最后一个值,因此您将始终打印您输入的最后一个值。

从 getter 中删除参数。

public String getName() {
    return name;
}

并调用类似

boats[i].getName()

关于Java 数组值被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54055984/

相关文章:

sorting - jdk 中的快速排序或 O(N.logN) 排序

java - 不同的行为取决于数据库中的异常

java - Java 中通过键连接字符串值的最方便的习惯用法

java - 如何判断两个圆形扇区是否重叠

java - 实现我自己的 Java 异常

java - 运行 spring-boot-maven-plugin 配置的 fat JAR 时出现 ClassNotFoundException

java - fragment 中的 TextView 未显示在 Activity 中

java - Entity.UserBean 无法转换为Entity.UserBean

java - 无法通过反射 getter 和查询来获取字段值以在纯 Hibernate 中对多个列求和

java - 如何将集合拆分为子集合?