Вызов методов возврата из параметров другого метода

#java #variables #methods #standards

#java #переменные #методы #стандарты

Вопрос:

Кто-нибудь знает, каково официальное слово по этому поводу? Вот пример:

 public void makeStuff(int total) {
    //method logic
  

Теперь давайте остановимся на том, что я вызываю этот метод следующим образом:

 new Thing().makeStuff(new OtherClass().getTotal); 
//OtherClass holds the int total that is returned
  

Это плохой стиль программирования для этого? И давайте просто предположим, что стандартный способ не является вариантом. (т. Е. new Thing().makeStuff(7));

Заранее всем вам спасибо. Мэтт

Комментарии:

1. Кажется совершенно нормальным, за исключением того, что это немного влияет на читаемость кода.

2. Я не вижу никакой проблемы…

Ответ №1:

Ну, если вы не собираетесь сохранять какие-либо ссылки на класс, то почему бы вместо этого не использовать статические методы?

 public static void makeStuff(int total) {
//method logic
  

и в вашем другом классе итоговое значение всегда будет одинаковым — поскольку у него нет шансов быть установленным, если только getTotal не должен был быть вызовом метода (getTotal()), и в этом случае это также может быть статический вызов, т.е.

 Thing.makeStuff(OtherClass.getTotal()); 
  

Комментарии:

1. Я согласен … однако я должен сохранить это как переменную экземпляра по причинам, с которыми я не буду беспокоить всех. Тем не менее, спасибо вам за ваш вклад. Похоже, что идея инициализации параметров таким образом хороша.

Ответ №2:

Я бы не стал создавать подобный объект для получения одного значения и не стал бы вызывать поле getTotal

Вы могли бы сделать

 new Thing().makeStuff(new OtherClass().total); 
  

или

 new Thing().makeStuff(new OtherClass().getTotal()); 
  

или

 new Thing().makeStuff(OtherClass.getTotal());