Olá
Estou com uma dúvida quanto ao tipo de retorno de métodos. Já vi na documentacao da SUN que métodos que retornam void não precisam de return, e quando precisarem é só usar return;. Fora isso o método deve retornar algo do tipo especificado, blz.
seguinte:
public class MorseCode {
public static String toMorse(char c) {
if ( !(((c >= 48) && (c <= 57)) || ((c >= 65) && (c <= 90)) || ((c >= 97) && (c <= 122))) ) { // se nao ascii 0-9, A-Z, a-z
return null;
}
if (Character.isDigit(c)) {
switch(c) {
case '1': return ".----";
case '2': return "..---";
case '3': return "...--";
case '4': return "....-";
case '5': return ".....";
case '6': return "-....";
case '7': return "--...";
case '8': return "---..";
case '9': return "----.";
case '0': return "-----";
}
}
c = Character.toUpperCase(c);
switch(c) {
case 'A': return ".-";
case 'B': return "-...";
case 'C': return "-.-.";
case 'D': return "-..";
case 'E': return ".";
case 'F': return "..-.";
case 'G': return "--.";
case 'H': return "....";
case 'I': return "..";
case 'J': return ".---";
case 'K': return "-.-";
case 'L': return ".-..";
case 'M': return "--";
case 'N': return "-.";
case 'O': return "---";
case 'P': return ".--.";
case 'Q': return "--.-";
case 'R': return ".-.";
case 'S': return "...";
case 'T': return "-";
case 'U': return "..-";
case 'V': return "...-";
case 'W': return ".--";
case 'X': return "-..-";
case 'Y': return "-.--";
case 'Z': return "--..";
}
return null;
}
}
1 dúvida: Aquele primeiro return null é a forma mais apropriada para trabalhar com a validação de dados quando os mesmos não são válido para serem manipulados? Se não, qual é o JAVA way de se fazer isso?
2 dúvida: O segundo return null está ali pois a ide ficou de frescuras dizendo que meu método tinha que retornar algo do tipo String, ok faz parte da regra da linguagem, mas dos possíveis “fins” do meu método todos retornam uma String então resolvi colocar esse return null para obedecer as regra da linguagem. Minha dúvida é se essa forma está de “acordo com o padrão JAVA” ou eu deveria trocar esse monte de return “”; por char ch = “”; break; e no final tocrar return null; por return ch; ?
Esse código foi postado aqui e funciona bem.

