Должны методы с типом возврата пусто использовать оператор возврата?

Я знаю, что существуют времена при использовании return; может служить полезной цели в Java, такой как в защите:

public void foo(Bar bar) {
    if(bar == null)
        return;

    // bar is not null, go ahead and do stuff with it
}

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

public void printMenu() {
    System.out.println("Print out some boilerplate info here, line 1.");
    System.out.println("Print out some boilerplate info here, line 2.");
    System.out.println("Print out some boilerplate info here, line 3.");

    return;
}

Кроме чистых предпочтений стиля, там любые причины за или против включения этого return;? Если так, каковы они?

Править: Ну, этому ответили быстро. Суммировать 15 ответов, отправленных ниже: "Нет".

18
задан Pops 15 December 2009 в 19:44
поделиться

11 ответов

Perhaps you're paid by line of code?

Other then that there's really no reason to put an empty return in the end.

49
ответ дан 30 November 2019 в 05:51
поделиться

I avoid them, myself. It's just a useless line of code. In fact, PMD has a rule that checks for such useless return statements.

10
ответ дан 30 November 2019 в 05:51
поделиться

Purely style-based question, makes absolutely no difference (maybe an extra asm instruction, but who cares?). Do whichever you feel more comfortable with or follow the convention previously established in the code.

1
ответ дан 30 November 2019 в 05:51
поделиться

I see no reason, even from a style perspective, to have a dangling return at the end. After all, you know it's going to return because there's an end brace there...

5
ответ дан 30 November 2019 в 05:51
поделиться

Я говорю, никогда не делайте этого. Операторы возврата в функциях void предназначены только для того, чтобы вырваться из логики оператора. Если вы начнете это делать, то отправите читателям вашего кода запутанное утверждение, у кого-то возникнет соблазн подумать, что, возможно, вы планировали иметь какой-то оператор if , который вы забыли. Всегда стремитесь к удобочитаемости.

1
ответ дан 30 November 2019 в 05:51
поделиться

Одна из идей структурированного программирования заключалась в следующем:

Каждая процедура должна иметь ровно одну точку входа и ровно одну точку выхода.

Если вы подпишетесь на эту политику, тогда оператор return указывает единственный способ выйти из подпрограммы.

На практике эта политика не делает код более понятным, и с 1970-х годов ее в основном игнорировали. Если вы разрешаете несколько операторов возврата в других подпрограммах, вы должны разрешить нулевые операторы возврата там, где это имеет наибольший смысл.

1
ответ дан 30 November 2019 в 05:51
поделиться

In your example the 'return' at the end is a matter of personal, team or organization style. I personally prefer to do an explicit return.

0
ответ дан 30 November 2019 в 05:51
поделиться

Думаю, кроме личных предпочтений нет никакой разницы. Первый случай считаю закономерным. В противном случае вам следует упаковать операторы в большой оператор if.

Последний пример возврата является лишним.

0
ответ дан 30 November 2019 в 05:51
поделиться

Я бы избегал этого только из соображений согласованности. Легче никогда не ставить это, чем помнить всегда добавлять его.

0
ответ дан 30 November 2019 в 05:51
поделиться

Это не служит никакой цели, но если вы хотите это сделать (потому что все в вашей команде это делают или по какой-то другой причине), вы можете это сделать.

0
ответ дан 30 November 2019 в 05:51
поделиться

Я думаю, что ненужные утверждения - это просто шум, поэтому я бы не стал добавлять это возвращение в конце. При этом я бы добавил возвраты в начало метода, если что-то не удовлетворяет моим требованиям, или, что еще лучше, я бы выбрасывал исключения IllegalArgumentException.

1
ответ дан 30 November 2019 в 05:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: