2010-11-06 55 views
7

Bất cứ ai cũng có thể giải thích lý do tại sao gọi [:]. Class trên bản đồ trả về null trong khi gọi [:]. GetClass() trả về kết quả mong đợi Map. Xem ví dụ dưới đâyGiải quyết Groovy Bản đồ lớp

1-

["test",[test:"test"],23].each {  
    println it.class 
} 
class java.lang.String 
null 
class java.lang.Integer 

2-

["test",[test:"test"],23].each {  
    println it.getClass() 
} 
class java.lang.String 
class java.util.LinkedHashMap 
class java.lang.Integer 

Ken

Trả lời

11

Dưới đây là câu trả lời

http://jira.codehaus.org/browse/GROOVY-1824

EDIT - chắc chắn rồi. Tôi nghĩ rằng ý nghĩa của một bản đồ là như vậy mà nếu bạn có

def m = [one:1, two:2] 

bạn có nghĩa vụ phải có khả năng truy cập vào các mục trong bản đồ như

m.one 

nói cách khác, truy cập vào bản đồ là như nhận được một tài sản trên đối tượng bản đồ. Nếu

m.class 

trả lại lớp học, nó sẽ phá vỡ ngữ nghĩa đó, bởi vì 'lớp' không phải là khóa được thêm vào bản đồ bởi người lập trình.

Thats những gì tôi thu thập ....

+1

Tuyệt vời, câu trả lời của ông là khá vô nghia tuy nhiên, bạn có thể đặt bằng tiếng Anh? – ken

+0

@ken đã chỉnh sửa câu trả lời của tôi bằng cách giải thích của tôi – hvgotcodes

+1

Rất rõ ràng giải thích dude, Điều này sẽ là câu trả lời về vấn đề JIRA thay thế. – ken

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