wierzę swój najlepszy strzał jest zadeklarować listę jako listę obiektów:
List<Object> anything = new ArrayList<Object>();
Następnie można umieścić cokolwiek chcesz w nim, jak:
anything.add(new Employee(..))
widocznie, pokochasz nie można odczytać niczego z listy bez prawidłowego odlewania:
Employee mike = (Employee) anything.get(0);
Odradzam korzystanie surowych typów, takich jak:
List anything = new ArrayList()
Ponieważ cała Celem generycznych jest właśnie ich uniknąć w przyszłości Java nie mogą już suport surowe typy, surowe typy uznawane są za dziedzictwo i raz użyć typ surowej jesteś nie wolno używać generycznych w ogóle w danym źródle.Na przykład, spójrz na to jedno pytanie: Combining Raw Types and Generic Methods
Lista
powinien to być 'List();' gdy otrzymasz obiekt typu 'example.get (0)' musisz wykonać rzutowanie jawne. Która klasa implementuje metodę myFunction()? Jeśli 'Pracownik' implementuje' myFunction() 'powinieneś zrobić coś w stylu' ((Pracownik) (example.get (0)). MyFunction(); ', z tym wskazujesz, że obiekt pobrany z pozycji 0 może być traktowany jako pracownik. Oczywiście, jeśli nie jest to wyjątek, zostanie rzucony. –
klasa jabłko { int cena; publiczny void myFunction (int iPrice) { cena = iPrice; } } klasa pomarańczowa { cena int; publiczny void myFunction (int iPrice) { cena = iPrice; } } public class główne { public static void main (String [] args) { Lista list = new ArrayList <>(); // utworzyć 3 obiekt apple do listy list.add (new apple()); list.add (nowe jabłko()); list.add (nowa pomarańczowa()); lista.get (0)./* "get (0)." to nie używa obiektu Apple i mojej funkcji */ } } –
mypolat