元の問題は、リフレクションを使用してプライベート フィールドでメソッドを実行する方法について説明されています。
クラスは
public class SecureResource {
private HttpServletRequest request;
public SecureResource() {}
@Inject
public SecureResource(@Nonnull final HttpServletRequest request) {
this.request = request;
}
// more things
}
@Jonの回答に基づく
(resource は、SecureResource の関連するインスタンスへの参照です。)
私は次のことをしました
Class cls = response.getResourceClass();
Object obj = cls.newInstance();
Field f = cls.getDeclaredField("request");
f.setAccessible(true);
HttpServletRequest request = (HttpServletRequest) f.get(obj);
String auth = request.getHeader("X-AUTH");
そして私は次のようになりrequest
ますnull
Field f
が nullではない
private javax.servlet.http.HttpServletRequest com.sunrunhome.blackbird.service.SecureResource.request
ここでどこが間違っているのか教えてください。