import org.json.*;
import org.json.JSONObject;
import java.util.Iterator;
/**
* Created by nubuntu on 10/06/2015.
*/
public class Object {
private Callback callback;
static void each(JSONObject json,Callback callback){
Iterator<?> keys = json.keys();
while(keys.hasNext()) {
String key = (String)keys.next();
try {
callback.run(key,json.get(key));
} catch (JSONException e) {
e.printStackTrace();
}
}
}
static void each(JSONArray json,Callback callback){
for(int i=0;i<json.length();i++){
JSONObject obj = null;
try {
obj = json.getJSONObject(i);
} catch (JSONException e) {
e.printStackTrace();
}
callback.run(obj);
}
}
public interface Callback{
public void run(String key, java.lang.Object o);
}
// Error : Duplicate Class
public interface Callback{
public void run(java.lang.Object o);
}
}
我想實現「每個」像jQuery的的JSONObject & JSONArray,也許許多其他對象後,使用 例如:Java動態類型如何?
JSONObject jsonobject= new JSONObject("hair":"black","eye":"blue");
Object.each(jsonobject,new Object.Callback() {
@Override
public void run(String key, Object o) {
Log.d(key,o.toString());
}
});
但是當我想創建第二個回調,它無法複製像以上靜態每種方法, 那麼如何處理每個動態類型?
謝謝,你能建議我鏈接學習Lamda表達式嗎? –
請參閱[Lambda表達式](https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html)。有通常的標準接口。 'BiConsumer'和'Consumer