java非静态方法getBalance不能从静态上下文中引用
我正在尝试引用另一个类中的方法,并在我的其他类的return语句中使用它。 目前,我得到的是以下错误:无法从静态上下文引用非静态方法getBalance。 任何帮助将不胜感激
public void bob() { return "Accountno.:" + super.toString() + Account.getBalance(); }
getBalance
是一个实例方法。 该方法的重点是它为您提供特定Account对象的余额,因此您需要一个Account实例才能在其上调用getBalance。 当你调用一个以类名开头的方法时,这就是’静态上下文’的意思,它意味着你在类上调用一个静态方法。
技术上调用构造函数并在新对象上调用getBalance方法(如其他post所示)将起作用,但不会为您提供任何有用的数据。 您需要了解如何获取所需的帐户(例如通过数据库查询)。
您是否尝试将Account划分为子类? 因为bob方法看起来很像一个toString,可以在Account中看到它。 如果您是子类化帐户,那么您不需要使用Account.
调用getBalance Account.
,你可以使用this.getBalance()
或只是getBalance
(因为this
是隐含的)。
您必须有一个用于调用getBalance()
的对象实例。 你打电话就像一个静态的方法。 这应该工作:
Account acc = new Account(); acc.getBalance();
正确的做法是拥有账户,账户和电话的实例
Account account = new Account(); account.getBalance();
或者将你的方法getBalance声明为静态。
您试图将非静态方法称为静态方法。 假设您有一个类帐户,Account.getBalance()仅适用于静态getBalance()方法。 您需要一个Account实例才能调用非静态getBalance()方法。