cố gắng quá tải java.lang.Math.sqrt
phương pháp tĩnh cho int
loại:quá tải của Math.sqrt: phương pháp quá tải dường như để che giấu bản gốc một
import static java.lang.Math.sqrt;
class Test
{
private static double sqrt(int n)
{
return sqrt(1.0 * n);
}
public static void main(String[] args)
{
System.out.println(sqrt(1));
}
}
lỗi lẻ phát sinh:
Test.java:7: sqrt(int) in Test cannot be applied to (double)
return sqrt(1.0 * n);
^
1 error
Nhưng khi rõ ràng tham chiếu phương thức java.lang.Math.sqrt
tất cả đều tốt:
class Test
{
private static double sqrt(int n)
{
return Math.sqrt(1.0 * n);
}
public static void main(String[] args)
{
System.out.println(sqrt(1));
}
}
Trình biên dịch được sử dụng là tiêu chuẩn javac, phiên bản 1.6.0_16.
Vì vậy, câu hỏi là:
- Tại sao là trình biên dịch không thể giải quyết quá tải trong trường hợp đầu tiên?
- Hành vi này được chỉ định trong thông số ngôn ngữ java ở đâu?
Xin cảm ơn trước.
Lỗi là gì? – Pace
Nói đúng ra bạn không quá tải bất kỳ phương pháp nào ở đây. –