2010-12-10 16 views
13

Ho una domanda semplice, ma non riesco a trovare una soluzione per questo.Utilizzo del metodo abs() in java. Il mio compilatore non conosce il metodo

Desidero utilizzare il metodo the abs() ma non funziona. Ricevo sempre il Error:" Cannot find symbol: method abs(int)".

Ho già provato a utilizzare il metodo includendo "import java.math" sopra il codice. Ma anche questo non funziona.

+0

Grazie di per tutti i suggetions. – Ordo

+1

Mi dispiace ma ho accettato il primo che ha risolto il mio problema. Penso sia giusto. – Ordo

+2

Sì, penso anche che "il peggiore" sia duro, ho aiutato il ragazzo a risolvere il suo problema e sono un po 'confuso dal bisogno di commenti peggiorativi. E un downvote da parte di qualcuno, noto, per una risposta corretta che l'OP ha accettato come utile? Wtf? – Brian

risposta

14

Si sta utilizzando:

Math.abs() 

o semplicemente

abs() 

?

Usa Math.abs()

4

Bisogna fare riferimento alla classe Math quando lo si utilizza:

Math.abs(<intval>) 
5

Si tratta di un metodo statico. Deve essere utilizzato in questo modo:

Math.abs(int); 

javadoc

See Class Methods in the Java Tutorial.

+1

Oppure è possibile utilizzare un'importazione statica: http://download.oracle.com/javase/1.5.0/docs/guide/language/static-import.html – Pushkar

+0

@Apache Fan - True. Ma penso che di solito sia meglio tenere la matematica in modo che sia chiaro al lettore da dove viene il metodo. Se stai usando abs e lo usi molto sì, 'importa statica javs.lang.Math.abs;' è una buona idea. – Adam

+0

Sono completamente d'accordo con te sul fatto che l'importazione statica di Math può portare a un codice molto difficile da capire. – Pushkar

8

Tutte le funzioni in Java sono parte di una classe. abs() è un membro statico della classe Math, in modo da chiamare

Math.abs(val); 

E 'in java.lang, quindi nessun bisogno di importare nulla

14

Chiamatelo come

Math.abs(number)

o importazione come:

import static java.lang.Math.abs;

4

O

import static java.lang.Math.*; 
4

Prima di tutto, è java.lang.Math (il pacchetto è stato sbagliato e la matematica è maiuscola), ma questo non è un problema dal momento che tutte le classi in java.lang vengono importati automaticamente.

Come dice Brian, utilizzare Math.abs(). In alternativa, è possibile importare i metodi staticamente:

import static java.lang.Math.*; 

Questo vi permetterà di utilizzare solo abs() (e tutti gli altri metodi statici della classe Math), senza anteponendo Math.

Problemi correlati