2010-12-10 37 views
13

Tôi có một câu hỏi đơn giản, nhưng tôi không thể tìm ra giải pháp cho nó.Sử dụng phương thức abs() trong java. Trình biên dịch của tôi không biết phương thức

Tôi muốn sử dụng phương thức the abs() nhưng không hoạt động. Tôi luôn nhận được Error:" Cannot find symbol: method abs(int)".

Tôi đã cố gắng sử dụng phương pháp này bằng cách bao gồm "import java.math" phía trên mã. Nhưng điều đó không làm việc quá.

+0

Thank cho tất cả các suggetions. – Ordo

+1

Tôi xin lỗi nhưng tôi đã chấp nhận giải pháp đầu tiên đã giải quyết được sự cố của tôi. Tôi nghĩ đó là công bằng. – Ordo

+2

Vâng tôi cũng nghĩ rằng "tồi tệ nhất" là khắc nghiệt, tôi đã giúp anh chàng giải quyết vấn đề của mình và tôi hơi bối rối khi cần bình luận xấu hổ. Và một downvote từ một ai đó, tôi nhận thấy, cho một câu trả lời đúng OP đã chấp nhận là hữu ích? Wtf? – Brian

Trả lời

14

Bạn đang sử dụng:

Math.abs() 

hoặc chỉ

abs() 

?

Sử dụng Math.abs()

4

Bạn cần phải tham khảo các lớp Math khi bạn sử dụng nó:

Math.abs(<intval>) 
5

Đó là một phương pháp tĩnh. Nó phải được sử dụng như thế này:

Math.abs(int); 

javadoc

See Class Methods in the Java Tutorial.

+1

Hoặc bạn có thể sử dụng nhập tĩnh: http://download.oracle.com/javase/1.5.0/docs/guide/language/static-import.html – Pushkar

+0

@Apache Fan - True. Nhưng tôi nghĩ tốt hơn là nên giữ Toán trong đó rõ ràng với người đọc nơi mà phương pháp đến từ đó. Nếu bạn chỉ sử dụng abs và sử dụng nó rất nhiều, 'import static javs.lang.Math.abs;' là một ý tưởng hay. – Adam

+0

Tôi hoàn toàn đồng ý với bạn rằng việc nhập tĩnh của Toán có thể dẫn đến rất nhiều khó hiểu mã. – Pushkar

8

Tất cả các chức năng trong Java là một phần của một lớp. abs() là một thành viên tĩnh của lớp Math, vì vậy gọi

Math.abs(val); 

Đó là trong java.lang, vì vậy không cần phải nhập khẩu bất cứ điều gì

14

Gọi nó như

Math.abs(number)

hoặc nhập dưới dạng:

import static java.lang.Math.abs;

4

Hoặc

import static java.lang.Math.*; 
4

Trước hết, đó là java.lang.Math (gói của bạn đã sai và Toán là viết hoa) nhưng đó không phải là một vấn đề vì mọi tầng lớp trong java.lang sẽ được tự động nhập khẩu.

Như Brian nói, sử dụng Math.abs(). Hoặc bạn có thể nhập khẩu các phương pháp tĩnh:

import static java.lang.Math.*; 

này sẽ cho phép bạn sử dụng chỉ abs() (và tất cả các phương pháp tĩnh khác từ lớp Math) mà không tiền tố họ với Math.

Các vấn đề liên quan