Ad esempio, desidero creare una funzione che possa restituire qualsiasi numero (negativo, zero o positivo).Come scrivere la funzione Java che restituisce i valori di più tipi di dati?
Tuttavia, sulla base di alcune eccezioni, mi piacerebbe che la funzione restituisca Boolean
FALSE
C'è un modo per scrivere una funzione che può restituire un int
o un Boolean
?
Ok, quindi questo ha ricevuto molte risposte. Capisco che sto semplicemente affrontando il problema in modo errato e dovrei throw
un qualche tipo di eccezione nel metodo. Per ottenere una risposta migliore, fornirò un codice di esempio. Si prega di non prendere in giro :)
public class Quad {
public static void main (String[] args) {
double a, b, c;
a=1; b=-7; c=12;
System.out.println("x = " + quadratic(a, b, c, 1)); // x = 4.0
System.out.println("x = " + quadratic(a, b, c, -1)); // x = 3.0
// "invalid" coefficients. Let's throw an exception here. How do we handle the exception?
a=4; b=4; c=16;
System.out.println("x = " + quadratic(a, b, c, 1)); // x = NaN
System.out.println("x = " + quadratic(a, b, c, -1)); // x = NaN
}
public static double quadratic(double a, double b, double c, int polarity) {
double x = b*b - 4*a*c;
// When x < 0, Math.sqrt(x) retruns NaN
if (x < 0) {
/*
throw exception!
I understand this code can be adjusted to accommodate
imaginary numbers, but for the sake of this example,
let's just have this function throw an exception and
say the coefficients are invalid
*/
}
return (-b + Math.sqrt(x) * polarity)/(2*a);
}
}
Hai già parecchie risposte, quindi puoi vedere che è possibile, ma non bello. Ti consiglierei di spiegare per cosa ti serve. Allora probabilmente avrai una soluzione migliore. A proposito, l'eccezione potrebbe essere rappresentata anche lanciando un'eccezione. Restituendo Boolean.FALSE e non restituendo mai Boolean.TRUE è un odore di codice, si consideri la restituzione di Integer con valore restituito null anziché FALSE. – maaartinus
L'utilizzo del valore di ritorno è una programmazione in stile C. Non che ci sia qualcosa di sbagliato in questo, ma prendi in considerazione le eccezioni. Questo è quello per cui sono fatti. – duffymo