当前位置:  开发笔记 > 编程语言 > 正文

有没有办法重载JSONArray在循环中表现得像常规List?

如何解决《有没有办法重载JSONArray在循环中表现得像常规List?》经验,为你挑选了1个好方法。

我很好奇是否有一种扩展JSONArray的语法方法,以便我可以在for(:)循环中使用它,因为我可以使用List.

所以,而不是必须这样做:

for(int i = 0; i< myJsonArray.length(); i++){
    myJsonArray.getString(i);
}

我想要做

for(String s : myJsonArray);

我意识到我需要确保在上面的例子中,数组中的对象确实是一个String,但是假设JSONArrays只能处理一些不应该有问题的类型.



1> weston..:

稍微调整所需的语法:

for(String s : iterable(myJsonArray))

然后写这样的iterable方法:

public static Iterable iterable(final JSONArray array) {
   return new Iterable {
       Iterator iterator() {
          return new Iterator {
             int i = 0;

             boolean hasNext(){
                return i < array.length();
             }

             String next(){
                return array.getString(i++);
             }

             void remove(){
                throw new RuntimeException(); //implement if you need it
             }
          }
       }
   };
}

我意识到我需要确保在上面的例子中,数组中的对象确实是一个String

好吧不是真的好像它不是一个String, 反正它会被强制转移String.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有