2010-02-04 121 views
0

我用下面的編碼在顯示在我的domain.But用戶帳戶編碼它在我的域名只顯示前100 records.But近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(); 
    } 
} 

回答

5

你只分配100個條目。從您的代碼

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

你也是一個錯誤,現在我改變了,但 列表條目= resultFeed.getEntries(); System.out.println(「\ nTotal Entries:」+ entries.size()); 這一行顯示Total Entries:100 這樣,我改變了分配的值後,只顯示100個條目。 – user246160 2010-02-04 09:38:24

1

提示:public String rn[]=new String[100];

你真的需要有i3和RN爲類成員?你真的需要嗎?列表看起來更像一個Object而不是String []。

1

沒有必要爲字符串數組(字符串[])。 數組是固定大小;在這種情況下,你已經爲字符串分配了100個「槽」,並且當你嘗試將一個字符串分配給位置100(你知道,第101個字符串)時,它失敗了。

您趕在年底異常。打印堆棧跟蹤找出什麼回事

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

學會閱讀它的發現什麼是說......但是你不應該趕上這個方法例外。無論程序在做什麼都最好放棄。在主要方法中捕獲它 - 只需打印或記錄它就可以了,這樣就可以糾正編程錯誤。

無論如何;您得到的結果是用戶條目列表。列表是(java.util)集合框架的一部分。集合有很多特徵;在這種情況下,您想遍歷列表中的所有條目。您可以通過使用iterator()方法-read的Javadoc ...... OR您可以使用循環語法糖這樣做:

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

變量i3和RN都沒有好..它們不應該是類變量,如果你需要「臨時」變量,請將它們定義在你要使用它們的地方附近。

至於變量的命名,如「入門」的名稱是不是「用戶」不太有用。實際上一個名爲UserEntry的類應該可能只是被稱爲User,但我不知道這個API,所以...

+0

我改變了,但這個編碼也顯示100個條目。 – user246160 2010-02-04 09:39:57