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

问题描述 投票:0回答:1

我有一个来自 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: 和 MonthSalary: 标记参数

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

下面是我的员工类文件

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 interpretation of dynamic allocation

java oop input arguments dynamic-memory-allocation
1个回答
0
投票

是的,你说得对。参数嵌入提示不适用于负数。可能是因为它没有将负数视为文字。然而,一种解决方法是,如果您将特定语言的参数嵌入提示切换为“全部”,那么它也适用于负数。但缺点是它也将针对变量名称参数启用。

因此,如果这对您来说不是问题,那么您可以通过转到 vscode 设置(ctrl+,)为所有类型的参数启用嵌入提示 搜索“参数名称” 滚动直到找到

{language} > inlay hints > Parameter Names : Enabled
,然后从
all
 中选择 
dropdown

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