2010-01-02 38 views
16

Các Spring Framework API doc nói:Quy ước đặt tên thuộc tính JavaBean được xác định ở đâu?

Quy ước sử dụng là để trả lại tên viết tắt uncapitalized của Class, theo tài sản JavaBeans đặt tên quy tắc: Vì vậy, com.myapp.Product trở thành sản phẩm; com.myapp.MyProduct trở thành myProduct; com.myapp.UKProduct trở thành UKProduct.

Tôi đã xem trang web Suns để tìm định nghĩa nhưng không tìm thấy định nghĩa. Tôi tự hỏi về một quy tắc cho tên với nhiều hơn một ký tự chữ hoa ở đầu. Quy tắc có phải ký tự đầu tiên là chữ hoa nếu ký tự thứ hai là chữ hoa quá không?

Nền là, tôi muốn tự động tạo tên biến để sử dụng trong các mẫu HTML tùy thuộc vào loại đối tượng. Ví dụ: class: SomeName -> object: someName.

Trả lời

26

http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138795.html

Ngoài ra, một direct link to the (PDF) specification.

Mục 8.8 trong tài liệu được liên kết có tên "Viết hoa tên được suy ra" và tóm tắt ngắn gọn cách tên của thuộc tính được bắt nguồn.

+4

Cảm ơn! Như tôi đã đoán nó có liên quan wheter lá thư thứ hai là chữ hoa hay không. Sun: "Tuy nhiên, để hỗ trợ việc sử dụng thường xuyên tất cả các tên viết hoa, chúng tôi kiểm tra xem hai ký tự đầu tiên của tên có phải là cả chữ hoa và nếu để nó một mình." Có một phương pháp để chuyển đổi một chuỗi thành tên theo quy ước này: java.beans.Introspector # decapitalize (Tên chuỗi) – deamon

+0

Chà, đó là rất nhiều chi tiết mà tôi không biết trước đây. Cảm ơn! –

2

việc triển khai chức năng này là trong lớp học này: http://java.sun.com/javase/6/docs/api/java/beans/Introspector.html

+0

Có một hàm nghịch đảo "viết hoa" tuân thủ các quy tắc của Java Beans không? (Chỉ cần viết hoa chữ cái đầu tiên không hoạt động trong trường hợp của gURL <-> getgURL, aFoo <-> getaFoo. Đó là lý do tại sao tôi đang tìm kiếm phương thức "chính thức".) – leo

+0

@leo Có 'java.beans.NameGenerator.capitalize', nhưng nó không phải là chức năng nghịch đảo. Bởi đến nay không. Tôi sợ, hàm này không thể đảo ngược được, nhưng bạn có thể đến gần hơn bằng cách thay thế 'toLowerCase' bằng' toUpperCase' trong [Introspector.decapitalize] (http://grepcode.com/file/repository.grepcode.com) /java/root/jdk/openjdk/8-b132/java/beans/Introspector.java#Introspector.decapitalize%28java.lang.String%29). Trên thực tế, 'toTitleCase' chính xác hơn. – maaartinus

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