6

nếu bạn có một lớp có nhập tĩnh vào java.lang.Integer và lớp của tôi cũng có phương thức tĩnh parseInt(String) thì phương thức nào sẽ gọi parseInt("12345") trỏ đến?phương thức nhập tĩnh chồng chéo

Cảm ơn bạn đã nâng cao!

Trả lời

6

Nếu bạn đang ở trong lớp học của riêng mình, nó sẽ gọi phương thức của bạn.
Nếu bạn ở bên ngoài lớp học của mình (và nhập cả hai lớp), bạn phải chỉ định lớp nào sẽ sử dụng.

Chứng minh: http://java.sun.com/docs/books/jls/download/langspec-3.0.pdf $ 8 và $ 6.3 (xem ý kiến)

+0

bạn có thể hiển thị một tham chiếu cho biết nó được đảm bảo theo tiêu chuẩn như vậy không? Nó có thể là trình biên dịch phụ thuộc ... – amit

+0

chờ đợi cho sm1 trả lời amit – MozenRath

+2

Từ Đặc tả Ngôn ngữ Java $ 8: Phạm vi (§6.3) của một thành viên (§8.2) là toàn bộ nội dung khai báo lớp mà thành viên đó thuộc về. | Từ $ 6.3: Phạm vi của một tuyên bố là khu vực của chương trình trong đó thực thể được khai báo bởi khai báo có thể được gọi bằng cách sử dụng một tên đơn giản (miễn là nó là vô hình (§6.3.1)). – Paranaix

5

Hãy thử điều này:

import static java.lang.Integer.parseInt; 

public class Test { 
    public static void main(String[] args) { 
     System.out.println(parseInt("12345")); 
    } 

    private static int parseInt(String str) { 
     System.out.println("str"); 
     return 123; 
    } 
} 

kết quả:

str 
123 

phương pháp trong bạn lớp được thực hiện đầu tiên.

+2

bạn có thể hiển thị tham chiếu cho biết nó được đảm bảo theo tiêu chuẩn để đúng không? Nó có thể là trình biên dịch phụ thuộc ... – amit

+1

+1 Tôi thích bằng chứng. – Bohemian

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