Tôi đã thấy một số mã trong slf4j như hiển thị bên dưới. Tôi không biết tại sao nên tránh gập liên tục ở đây. Có cần thiết để làm điều đó không? hoặc chỉ là thực hành tốt nhất. lợi ích của việc này là gì?lý do tại sao để tránh gấp liên tục trong Java? Khi nào?
Cảm ơn.
/**
* Declare the version of the SLF4J API this implementation is compiled against.
* The value of this field is usually modified with each release.
*/
// to avoid constant folding by the compiler, this field must *not* be final
public static String REQUESTED_API_VERSION = "1.6"; // !final**
Bạn đã xem wiki về chủ đề này chưa? Tôi nghĩ nó giải thích khá tốt. http://en.wikipedia.org/wiki/Constant_folding – CoolBeans
Bạn có thể sử dụng phương thức thay vì để lộ trường này (có thể là tốt nhất), sử dụng 'final' nhưng chuyển giá trị thông qua một phương thức (' "1.6" .toString() ') hoặc thêm một số mã để ngăn chặn nó là một * biên dịch-thời gian liên tục * nhưng không thêm bất kỳ bytecode không cần thiết ('null! = null?" ":" 1,6 "'). –
Vâng, hằng số tĩnh công cộng là icky! –