平台:android
我是java的新手,我想做这样的事情:
private void PostToServer(final Callback mycallback){
OkHttpClient client= new OkHttpClient();
//some codes....
client.newCall(req).enqueue(new Callback(){
private void onFailure(Request req,IOException e){
tip("SERVER ERROR!");
}
private void onResponse(Response resp){
Call mycallback(resp); //how to call the callback?
}
}
}
我想像这样使用它:(创建一个自己的界面?)
PostToServer(new callback(){
@Override
private void onSuccess(String resp){
if(resp==1){
tip("SERVER CONNECTED!");
}
}
});
目标:在onResponse()中调用mycallback。
btw这种类型的代码叫什么?我应该使用哪些关键字进行搜索?
非常感谢!
okhttp回调界面: direct link
package com.squareup.okhttp;
import java.io.IOException;
public interface Callback {
void onFailure(Request request, IOException e);
void onResponse(Response response) throws IOException;
}
答案 0 :(得分:1)
不确定具体问题是什么。但是你正在使用一个匿名的内部类。并且如果它们是最终的,您只能从外部访问对象。使用Java 8,您的回调参数应该是隐式final。如果您使用的是Java 7(在Android IIRC的情况下使用它),则需要使用final关键字标记参数。
如果你问的是你想要实现的设计模式......你正在做的是类似于函数式编程,因为你传递了应该作为回调对象执行的函数。