0

元の問題は、リフレクションを使用してプライベート フィールドでメソッドを実行する方法について説明されています。

クラスは

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

ここでどこが間違っているのか教えてください。

4

1 に答える 1