Java-нестатический метод getBalance нельзя ссылаться из статического контекста - PullRequest
1 голос
/ 11 февраля 2011

Я пытаюсь сослаться на метод в другом классе и использовать его в операторе возврата в моем другом классе.На данный момент все, что я получаю, это следующая ошибка: на статический метод getBalance нельзя ссылаться из статического контекста.Любая помощь будет принята с благодарностью

 public void bob()
   {
     return "Accountno.:" + super.toString() + Account.getBalance();
   }

Ответы [ 4 ]

4 голосов
/ 11 февраля 2011

getBalance - это метод экземпляра. Суть метода в том, что он дает вам баланс для определенного объекта Account, поэтому вам нужен экземпляр Account для вызова getBalance для него. Когда вы вызываете метод, предваряемый именем класса, это означает «статический контекст», это означает, что вы вызываете статический метод для класса.

Технически вызов конструктора и вызов метода getBalance для нового объекта, как и другие публикации, будут работать, но не дадут вам полезных данных. Вам необходимо выяснить, как получить необходимую учетную запись (например, с помощью запроса к базе данных).

Вы пытаетесь создать подкласс Account? Потому что метод bob очень похож на toString, который будет выглядеть дома в Account. Если вы создаете подкласс для учетной записи, вам не нужно вводить предисловие к вызову getBalance с помощью Account., вместо этого вы можете использовать this.getBalance() или просто getBalance (поскольку подразумевается this).

2 голосов
/ 11 февраля 2011

У вас должен быть экземпляр объекта для вызова getBalance(). Вы звоните как статический метод. Это должно работать:

Account acc = new Account();
acc.getBalance();
0 голосов
/ 11 февраля 2011

Вы пытаетесь вызвать нестатический метод, как если бы он был статическим. Предполагая, что у вас есть класс Account, Account.getBalance () будет работать только для статического метода getBalance (). Вам нужен экземпляр Account для вызова нестатического метода getBalance ().

0 голосов
/ 11 февраля 2011

Правильный способ сделать это - создать экземпляр Account, account и call

Account account = new Account();
account.getBalance(); 

или объявить ваш метод getBalance как статический.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...