Tôi là người mới trong clojure và java.Truy cập các trường Java tự động trong Clojure?
Để truy cập vào một lĩnh vực Java trong Clojure bạn có thể làm:
Classname/staticField
mà chỉ là giống như
(. Classname staticField)
(đúng cho tôi nếu tôi sai)
Làm cách nào để truy cập trường tĩnh khi tên của trường được giữ trong một biến? tức là .:
(let [key-stroke 'VK_L
key-event KeyEvent/key-stroke])
Tôi muốn key-stroke
được đánh giá vào biểu tượng VK_L trước khi nó cố gắng để truy cập vào lĩnh vực này.
Ngoài câu trả lời của skuro, bạn có thể xem API phản chiếu Java. Xem phần "Thay đổi giá trị của các trường" tại http://java.sun.com/developer/technicalArticles/ALT/Reflection/. – gatoatigrado
Để khai thác thêm một chút: Truy cập các trường hoặc các cuộc gọi phương thức phải được biên dịch trong mã byte. Đó là lý do tại sao bạn không thể xây dựng chúng với thông tin thời gian chạy. Nếu bạn cần điều đó, bạn sẽ phải sử dụng sự phản chiếu. (xem câu trả lời của Joost) – kotarak