检索用户帐户

时间:2010-02-04 08:53:51

标签: java

我使用以下编码在我的域中显示用户帐户。但是在该编码中它只显示前100条记录。但在我的域中有近500个用户帐户。我不知道这个编码中有什么问题

import java.net.URL;
import java.util.List;

import com.google.gdata.client.appsforyourdomain.UserService;
import com.google.gdata.data.appsforyourdomain.provisioning.UserEntry;
import com.google.gdata.data.appsforyourdomain.provisioning.UserFeed;

public class Readuser {
       public int i3;
       public  String rn[]=new String[100];



    public void read(){
        try
        {

                // Create a new Apps Provisioning service
                UserService myService = new UserService("My Application");
                myService.setUserCredentials(admin,password);

                // Get a list of all entries
                URL metafeedUrl = new URL("https://www.google.com/a/feeds/"+domain+"/user/2.0/");
                System.out.println("Getting user entries...\n");
                UserFeed resultFeed = myService.getFeed(metafeedUrl, UserFeed.class);
                List<UserEntry> entries = resultFeed.getEntries();

                for(i3=0; i3<entries.size(); i3++) {
                  UserEntry entry = entries.get(i3);
                  rn[i3]=  entry.getTitle().getPlainText();
                  System.out.println(rn[i3]);
                }
                System.out.println("\nTotal Entries: "+entries.size());
              }
             catch(Exception e) { System.out.print(e);}
         }

    public static void main(String args[])
    {
    Readuser ru=new Readuser();
    ru.read();
    }
}

3 个答案:

答案 0 :(得分:5)

您只能分配100个条目。

public  String rn[]=new String[100];

答案 1 :(得分:1)

提示您的代码:public String rn[]=new String[100];

你真的需要i3和rn作为班级成员吗?你真的需要吗?作为对象,List似乎比String []更舒适。

答案 2 :(得分:1)

不需要字符串数组(String [])。 数组是固定大小的;在这种情况下,您为字符串分配了100个“槽”,当您尝试将字符串分配给位置100(您知道,第101个字符串)时,它会失败。

最后你抓到了一个例外。打印堆栈跟踪以了解最新情况

catch(Exception e) { 
    e.printStackTrace();
} 

学会阅读它,找出所说的内容......但是你不应该在这种方法中捕获异常。最好中止程序正在做的事情。在主方法中捕获它 - 只需打印或记录它就可以了,这样就可以纠正编程错误。

反正;您得到的结果是用户条目列表。列表是(java.util)集合框架的一部分。收藏品有很多功能;在这种情况下,您希望迭代列表中的所有条目。您可以使用iterator()方法执行此操作 - 读取javadoc ... OR 您可以使用for-loop语法糖来执行此操作:

for( UserEntry user : entries ) {
    // user is the current UserEntry
    System.out.println(user.getTitle().getPlainText()); 
} 

变量i3和rn不好......它们不应该是类变量,如果你需要“临时”变量,请将它们定义在你要使用它们的位置附近。

对于变量的命名,像“entry”这样的名称没有“user”那么有用。实际上一个名为UserEntry的类应该只被称为User,但我不知道这个API,所以......