Khám phá Java: biến static trong inner class

Hôm nay tình cờ đọc một bài về một lỗi khó hiểu của Java. Có thể nó sẽ làm bạn đau đầu đây, cùng tôi khám phá nhé.

Click vô hình để phóng to


Ta có thể nhìn thấy 2 biến được khai báo, nhưng khác kiểu. Theo bạn thì ta đang gặp vấn đề gì vậy

Gợi ý nhé:
1.Nó sẽ đúng khi ta khai báo Object là String, nhưng array thì không.
2. Bạn sẽ bị báo lỗi sau khi dùng Eclipse:
The field OBJECT_CONST cannot be declared static; static fields can only be declared in static or top level types

Báo kiểu này chỉ làm ta rối mắt thêm thôi, vì biến integer dùng được mà.

Comment nhé. :-)

Cao Trong Hien

4 Responses to "Khám phá Java: biến static trong inner class"

Gman.Return said :
lúc 16:20 25 tháng 7, 2008
thì anh để cái inner class lại thành static
ý anh là sao?
lúc 16:31 25 tháng 7, 2008
Nhưng khi khai biến với kiểu integer (dòng trên) thì đúng. Ý mình là ta đang vướng vào lỗi gì?
Nặc danh said :
lúc 13:28 18 tháng 8, 2008
Không lỗi gì cả.. cái IDE của anh bị khùng :))
Nặc danh said :
lúc 12:51 26 tháng 8, 2008
Câu trả lời có thể tìm thấy trên Java Language Specification 3rd Edition, Section 8.1.3:
Inner classes may not declare static members, unless they are compile-time constant fields

Vì integer là một compile-time constant, còm Object thì không.

Đăng nhận xét