Tôi đã tạo chú thích của riêng mình, mà tôi sử dụng qua phản ánh để đưa ra quyết định trong mã của mình. Chú thích có giá trị mặc định được đặt cho phần tử duy nhất của nó. Có cách nào tôi có thể truy cập các giá trị mặc định thông qua sự phản ánh?Nhận giá trị phần tử mặc định từ chú thích trong Java
PageableRequestMapping.java (Annotation)
package org.tothought.controllers.annotations;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface PageableRequestMapping {
String variablePath() default "/";
}
psuedo Mã để lấy giá trị mặc định
private int parsePageNumber(StringBuffer requestURL,
PageableRequestMapping pageableRequestMapping) {
String variablePath = pageableRequestMapping.variablePath();
//Psuedo code doesn't work in Java, included to illustrate intentions
if(variablePath.equalsIgnoreCase(pageableRequestMapping.variablePath().default())){
//handle default case
}else{
//handle different case
}
return 0;
}
nghiên cứu của tôi về vấn đề này đã bật lên không có ví dụ. Tôi giả định giá trị này có thể được truy cập một cách tĩnh thông qua lớp, nhưng nó không thể. Vì vậy, tôi còn lại với hai câu hỏi.
- Có thể nhận giá trị mặc định của phần tử trong chú thích không?
- Nếu có, làm cách nào?
Ngoài ra, tôi biết tôi có thể mã hóa cứng giá trị này, tuy nhiên tôi muốn làm cho chương trình hơi mạnh mẽ hơn.
Giải pháp trả về null; Tôi đang kiểm tra để chắc chắn rằng nó không phải là tôi. Mã này bạn có chạy không? –
Tôi đã viết một chương trình thử nghiệm, chạy thành công: http://pastie.org/5356931 – Vulcan
Tôi chỉ tìm ra và dán của bạn đã xác nhận lại nó. Bạn cần phải có lớp theo cách tĩnh. Thay vì 'pageableRequestMapping.getClass', bạn cần sử dụng' PageableRequestMapping.class'. Tôi tự hỏi tại sao việc nhận lớp từ cá thể khác với truy cập tĩnh vào lớp. Cảm ơn câu trả lời tuyệt vời, tôi đánh giá cao nó. –