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);
}
}
我想为JSONObject和JSONArray实现类似jquery的“每个”,以后可能还会实现许多其他对象,
使用示例:
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());
}
});
但是当我想创建第二个Callback时,它不能像上面的静态每个方法一样重复,
那么如何处理每个动态类型呢?
最佳答案
在android的情况下,如果您进行如下更改,我认为您的代码将可用:
public interface Callback{
public void run(String key, java.lang.Object o);
public void run(java.lang.Object o);
}
您的
each
函数出错是因为您的Callback
接口而不是它本身。关于java - Java动态类型如何?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30750135/