我使用以下编码在我的域中显示用户帐户。但是在该编码中它只显示前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();
}
}
答案 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,所以......