带有强制转换参数的java反射调用方法失败

vmdwslir  于 2021-06-26  发布在  Java
关注(0)|答案(0)|浏览(252)

我想调用反射的方法 okhttp3.Request . 要调用的方法是 writeTo(okio.BufferedSink) .

private String getBody(final Object body){
    try {
        final BufferedSink buffer = Okio.buffer((Sink) new Buffer());

        Method methodWriteTo = findMethod(body.getClass(), "writeTo");

        # Not working 
        methodWriteTo.invoke(body, BufferedSink.class.cast(buffer));

        # Not working 
        methodWriteTo.invoke(body, (BufferedSink)buffer);

        String body = buffer.buffer().readUtf8();
        return body;
    } catch (Exception e) {
       ...
    }

    return "";
}

我总是 http3.RequestBody$Companion$toRequestBody$1.writeTo argument 1 has type okio.BufferedSink, got okio.RealBufferedSink .
这个 okio.BufferedSink 是接口类,那么如何用 okio.RealBufferedSink ?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题