Mẫu Trực tiếp Intellij


81

Có cách nào để sử dụng giá trị mã thông báo mặc định trong Intellij Live templateskhông? Ví dụ: tôi có mẫu trực tiếp sau đây khai báo một biến riêng mà tôi muốn tạo gần như cho mọi lớp:

private static final Logger logger = Logger.getLogger($CLASS$.class)

Có vẻ như không cần thiết phải nhập $CLASS$mỗi khi sử dụng mẫu trực tiếp này, vì nó có thể được dẫn xuất từ ​​lớp trong phạm vi hoặc tên tệp. Tôi đã tự hỏi liệu có thể sử dụng mã thông báo do môi trường xác định trong các mẫu trực tiếp làm mặc định không?

Câu trả lời:



54

log4j:

private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger($CLASS_NAME$.class);

slf4j:

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger($CLASS_NAME$.class);

Đảm bảo rằng bạn đặt ngữ cảnh áp dụng cho Java và rút ngắn tên FQbỏ qua nếu đã bật định nghĩa .


3
Tôi thích phần bổ sung mà bài viết này đề cập đến việc thiết lập biểu thức en để điền biến với một mặc định hợp lý. coderwall.com/p/hzmhbw
Snekse

@Snekse Đó là một bổ sung tốt. Bạn có thể cải thiện câu trả lời của tôi bằng cách chỉnh sửa nó.
Nowaker

Câu trả lời này không thực sự trả lời câu hỏi của người hỏi: để tự động điền vào $CLASS_NAME$biến bằng tên lớp, bạn cần đặt "Biểu thức" được liên kết với $CLASS_NAME$biến className(). Xem câu trả lời của CrazyCoder để biết ảnh chụp màn hình.
Adil Hussain

3

log4j 2:

private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger($CLASS_NAME$.class);

Câu trả lời này không thực sự trả lời câu hỏi của người hỏi: để tự động điền vào $CLASS_NAME$biến bằng tên lớp, bạn cần đặt "Biểu thức" được liên kết với $CLASS_NAME$biến className(). Xem câu trả lời của CrazyCoder để biết ảnh chụp màn hình.
Adil Hussain
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.