2015-04-05 3 views
-7

Я знаю, как использовать дженерики в Java, но если экземпляр дается каккласса как Generic в Java

List<someclass> ai = new List<someclass>(); 

Как я могу использовать список в этом случае? Как я могу получить доступ и изменить элементы в классе?

Просьба привести пример.

ответ

0

Его можно использовать в основном как любой не общий список. Вот пример со списком строк, который показывает вставки, получение и удаление элементов, а также проверки их существования:

package example; 

import java.util.ArrayList; 
import java.util.List; 

public class Example { 
    public static void main(String[] args) { 
     List<String> list = new ArrayList<String>(); 
     list.add("foo"); 
     list.add("bar"); 

     // Get/extract the first element 
     // You can then call methods on 
     // that element, e.g. list.get(0).toUpperCase(...) 
     String firstElement = list.get(0); 
     System.out.println("First Element: " + firstElement); 

     // Remove the first element 
     list.remove("foo"); 
     firstElement = list.get(0); 
     System.out.println("First Element after delete: " + firstElement); 

     // Check whether the list contains an object 
     if (list.contains("bar")) { 
      System.out.println("List contains bar."); 
     } else { 
      System.out.println("List doesn't contain bar."); 
     } 
    } 
} 

Выходы:

First Element: foo 
First Element after delete: bar 
List contains bar. 

Вы можете использовать генерики в чтобы принимать только списки, которые содержат определенные типы элементов:

package example; 

import java.util.ArrayList; 
import java.util.List; 

public class Example { 
    public static void main(String[] args) { 
     List<String> list = new ArrayList<String>(); 
     list.add("foo"); 
     list.add("bar"); 
     printAll(list); 
    } 

    public static void printAll(List<String> list) { 
     for (String str : list) { 
      System.out.println(str); 
     } 
    } 
} 

Выходы:

foo 
bar 

Следующая однако является недействительным, так как вы бы попытаться вставить Integer в строки только для списка:

public static void main(String[] args) { 
    List<String> list = new ArrayList<String>(); 
    list.add(1); 
} 
Смежные вопросы