预测前缀在动态分配内存的参数中输入负双精度时消失

Predictive prefix disappeared on Input of negative double in argument of dynamically allocated memory

提问人:Josh Olson 提问时间:9/2/2023 更新时间:9/2/2023 访问量:14

问:

我从类 Employee 中分配了一个变量 e3,它接受 2 个字符串(名字、姓氏)和一个双精度字符串。我遇到的挑战是,当我只期望双精度时,我在双精度参数中插入了一个“-”减号。

我使用 Visual Studio Code 作为我的 IDE,它标记动态内存的参数,让您知道该参数的确切值。

当我运行我的代码时,它可以很好地输出到屏幕上,但在更复杂的项目中,我相信我需要进行某种类型的转换。我正在寻找有关将非整数/双精度数据输入到整数/双精度参数的任何建议。关于预测前缀消失的原因的解释也将起作用!

下面我附上了我的代码,第一个块是main(),第二个块是我的类。

public class EmployeeTest {
    public static void main(String args[]) {

        Employee e1 = new Employee(nameF: "nameF", nameL: "nameL", monthlySalary: 2500.00);
        Employee e2 = new Employee(nameF: "nameF", nameL: "nameL", monthlySalary: 3600.75);
        Employee e3 = new Employee(nameF: "nameF", nameL: "nameL", -6000.00);
        System.out.println(e1);
        System.out.println(e2);
        System.out.println(e3);
    }
}

在此代码片段中,您可以在第 1-2 行看到,在 new Employee() 中,我的 IDE 使用 nameF:、nameL: 和 monthlySalary 标记了参数:

在第 3 行,当我插入“-”减号时,省略了 monthlySalary:。

下面是我的 Employee 类文件

public class Employee {

    private String nameF;
    private String nameL;
    private double monthlySalary;

    public void setFirstName(String firstName) {
        firstName = nameF;
    }

    public void setLastName(String lastName) {
        lastName = nameL;
    }

    public void setMonthlySalary(double salary) {
        salary = monthlySalary;
    }

    public int getFirstName() {
        return nameF;
    }

    public int getLastName() {
        return nameL;
    }

    public double getMonthlySalary() {
        return monthlySalary;
    }

    //Here is the method I am having trouble with, specifically the double argument

    Employee(String nameF, String nameL, double monthlySalary) {
        this.nameF = nameF;
        this.nameL = nameL;
        this.monthlySalary = monthlySalary;
    }

动态分配的 Visual Studio Code 解释

Java OOP 输入 参数 dynamic-memory-allocation

评论

1赞 tgdavies 9/2/2023
我不明白你有什么问题。这些参数名称只是由 IDE 显示,它们不是 Java 语言的一部分,并且对程序的功能完全没有影响。
0赞 Josh Olson 9/3/2023
我的“问题”不一定是语法问题,而是理解编译器如何知道减号“-”意味着被接受的双精度值是负值。在我看来,它将减号视为非数值。
0赞 tgdavies 9/3/2023
“在我看来,它把减号看作是一个非数字值”。我不明白你为什么这么想,但我可以向你保证,编译器明白 表示负值。-

答: 暂无答案