gpt4 book ai didi

Java自定义简写表达式

转载 作者:行者123 更新时间:2023-11-30 03:23:05 25 4
gpt4 key购买 nike

首先,这不是一个问题,我也需要答案。但我认为这将是一种使代码更简洁的有趣方法。

在我编写的一些代码中,我构建了一个模块,用于在新线程上检索 HTTP 请求,然后使用回调将结果返回到主线程。

代码示例:

public interface MyCallback {
void Callback_done(String Data);
}
public void HTTP_process(String get_vars, List<NameValuePair> post_vars,MyCallback callback){
Task = new GET_Task();
Task.get_vars = get_vars;
Task.post_vars = post_vars;
Task.callback = callback;
Task.execute();
}
public class GET_Task extends AsyncTask<String, Integer, String> {
public MyCallback callback;
public String get_vars="";
public List<NameValuePair> post_vars = null;
@Override
protected void onPreExecute() {
super.onPreExecute();
//displayProgressBar("Downloading...");
}

@Override
protected String doInBackground(String... params) {
//CODE HERE
}

@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
}

@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
callback.Callback_done(result);
}
}

然后使用上面的“库”:

Globals.mData_Handler.HTTP_process("",null,new Data_Handler.MyCallback() {
public void Callback_done(String Data) {//Callback code here
}
});

当我说速记时,我希望能够输入以下内容:

Globals.mData_Handler.HTTP_process("",null,new ^{//Callback code here
});

我知道这是 Objective C 处理回调的方式,有没有办法在 java 中设置这样的东西?使用自定义简写表达式?

最佳答案

使用 Java 8,您会得到 lambda expressions

Globals.mData_Handler.HTTP_process("",null, (String data) -> {
//Callback code here
});

如果您只做一行,您甚至可以省略大括号:

Globals.mData_Handler.HTTP_process("",null, (String data) -> log.info(data));

当然上面也可以用Java8来写method references :

Globals.mData_Handler.HTTP_process("",null, log::info);

关于Java自定义简写表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30858021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com