【问题标题】:How do I get around my getter wanting a static method? [duplicate]如何绕过需要静态方法的吸气剂? [复制]
【发布时间】:2019-02-13 15:06:40
【问题描述】:

我的 getter 希望它拥有一个静态方法,但如果我这样做,它会破坏我的代码,有什么办法可以解决这个问题吗?语言 Java。

这是我的测试类中想要在我的自动售货类中获取方法的行。

System.out.println("Total Sales for both machines today $"+ VendingMachine.getTotalsSales());

这是我的 getter 方法,它采用我从测试类中提供的字符串创建的数组,该字符串将项目放入数组中。我希望能够保留我创建的这个数组,同时获得总销售额。

public double getTotalsSales() {
    totalSales += availableItems[this.selectItem].price;
    return totalSales;
}

有什么方法可以保留我的数组,并且还可以从测试人员类中获取总销售额?

【问题讨论】:

  • 欢迎来到 Stack Overflow。请提供minimal reproducible example,以便我们帮助您解决确切的问题。还要确保包含错误消息并指出是哪一行导致它。
  • 你的句子模棱两可,难以理解。请让他们更容易理解。此外,正如@Code-Apprentice 提到的,请在此处包含您的代码。

标签: java arrays methods static getter


【解决方案1】:

听起来VendingMachine 是您的类的名称,而不是您的类实例的名称。在类而不是实例上调用方法 getTotalsSales 试图在静态上下文中调用它,这就是它要求它是静态的原因。

创建一个类的实例并调用它!

【讨论】:

  • 现在说得通了,我确实有两个实例,即 VendingMachine 类中的drinksVending 和snacksVending,所以我所要做的就是指定我想将这两个自动售货机加在一起,这样就可以了。总之谢谢!
【解决方案2】:

我假设VendingMachine 是类名。你需要先创建这个类的一个实例:

VendingMachine machine = new VendingMachine();

然后在该实例上调用方法:

machine.getTotalsSales()

有关更多详细信息,我建议您阅读有关类和对象之间的区别以及它们之间的关系的教程。

【讨论】:

  • 现在说得通了,我确实有两个实例,即 VendingMachine 类中的drinksVending 和snacksVending,所以我所要做的就是指定我想将这两个自动售货机加在一起,这样就可以了。总之谢谢!
  • @SallyTrivone 没有更多代码,我不能准确地说。但是,getTotalsSales() 只会返回单个自动售货机的总数。请注意,您当前的实现不正确。至少,我假设getTotalsSales() 应该将机器中所有项目的所有销售额加起来。您当前的代码不这样做。
猜你喜欢
  • 2020-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-26
  • 2023-02-02
  • 2018-11-16
  • 2018-04-05
  • 1970-01-01
相关资源
最近更新 更多