[英]java list empty when returning from method
我有一個方法可以遍歷排序的數組和排序的列表元素到另一個名為 sortedFirstName 的列表。 這是方法代碼。
public void sortFirstName(String input){
Collections.sort(fullName, new FirstNameComparator(input));
for(int i = 0;i<fullName.size();i++){
System.out.println("\n" + fullName.get(i));
sortedFirstName.add(fullName.get(i)); //adds to list fine
}
System.out.println("Sorted First Name" + sortedFirstName);
//prints desired output, [Jake Paul, Billy Robinson, Charles Princeton, John Paul, Karen Jacobs]
FirstName 是一個 List 並且像這樣被實例化 - List<String> fullName = new ArrayList<String>();
並從方法 listAllContacts 填充,如下所示:
public void listAllContacts(){
for (Map.Entry<String,Person> entry : contacts.entrySet()) {
fullName.add(entry.getValue().fullName());
}
for (String contents : fullName) {
System.out.println("\n" + contents);
}
}
它由字符串填充,這些字符串是 hashmap 中 object 的字段
通過這種方法,我打印 list sortedFirstName list 的內容並得到正確的 output ,它在 print 語句下被注釋。
我也有這個返回該列表的 get 方法
public List<String> getSortedFirstNames(){
return this.sortedFirstName;
}
在我的 Junit class 我這樣稱呼這些方法
@Test
public void sortFirst(){
ad1.sortFirstName("Jake");
List sorted = ad1.getSortedFirstNames();
List sortedList = new ArrayList();
sortedList.addAll(Arrays.asList("Jake Paul", "Billy Robinson", "Charles Princeton", "John Paul", "Karen Jacobs")); //expected output from boostrapped users
assertEquals(sortedList,sorted);
}
從我的測試用例邏輯來看, List sorted
應該包含元素[Jake Paul, Billy Robinson, Charles Princeton, John Paul, Karen Jacobs]
但是當我將硬編碼列表與sorted
進行比較時,它顯示為空。 我看不到問題,因為sortedFirstName
清楚地添加了元素,任何幫助將不勝感激
我發現了我的錯誤。 實際填充fullName
變量需要listAllContacts
方法。 如果沒有調用listAllContacts
方法,它不會填充fullName
,進而無法填充sortedFirstName
列表。
這是我的新代碼:
@Test
public void sortFirst(){
ad1.listAllContacts();
ad1.sortFirstName("Jake");
List sorted = ad1.getSortedFirstNames();
List sortedList = new ArrayList();
sortedList.addAll(Arrays.asList("Jake Paul", "Billy Robinson", "Charles Princeton", "John Paul", "Karen Jacobs")); //expected output from boostrapped users
assertEquals(sortedList,sorted);
}
注意ad1.listAllContacts();
這解決了我的問題。 感謝所有評論的人幫助我解決這個問題,非常感謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.