随机代码:
// Getting All Contacts
public List<Contact> getAllContacts() {
List<Contact> contactList = new ArrayList<Contact>();
// Select All Query
String selectQuery = "SELECT * FROM " + TABLE_CONTACTS;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
Contact contact = new Contact();
contact.setID(Integer.parseInt(cursor.getString(0)));
contact.setName(cursor.getString(1));
contact.setPhoneNumber(cursor.getString(2));
// Adding contact to list
contactList.add(contact);
} while (cursor.moveToNext());
}
// return contact list
return contactList;
}
查看它的位置
public List<Contact> getAllContacts() {
所以我想问一下,为什么它需要List旁边的标签中的“Contact”类? 有人能帮助我吗?
我甚至尝试过谷歌在Java中使用标签,但我找不到任何东西。
答案 0 :(得分:5)
它不需要返回类型中的类Contact
。实际上在java的旧版本中,在JDK 5之前,这是编写该方法的唯一方法。
public List getAllContacts() {...}
问题在于您不知道列表包含哪种类型,Generics允许您指定此类。因此,通过使用<>
,您可以指定列表中包含的类,在本例中为Contact
。
public List<Contact> getAllContacts() {...}
通过使返回类显式,它允许编译器执行类转换检查,并允许您编写更容易调试的代码,因为您知道在该列表中获得的内容。
答案 1 :(得分:1)
它被称为Generics,自JDK 5开始引入.Java List
已被生成以允许开发人员指定类型(称为参数化类型)。这基本上可以翻译为“联系人列表”。您可以将Contact
添加到列表中,然后从列表中检索Contact
。
按照Oracle Website上的泛型教程。
答案 2 :(得分:1)
它不是标签,它创建了一个专用于相应类型的泛型类型的实例。 List<>
是一个通用列表;它可以包含任何东西。 List<Contact>
是一个列表,其中列表中的元素是Contact
类的实例。
请参阅http://docs.oracle.com/javase/tutorial/extra/generics/intro.html
答案 3 :(得分:0)
这就是所谓的'通用'。在此代码中,它表示“类型联系人列表”这是一个很好地回答的问题:Java Generics: List, List<Object>, List<?>