Portál AbcLinuxu, 21. července 2025 17:29
Pokud mám nějaké dvě nesouvisející třídy A,B a udělám toto:
ArrayList list=new ArrayList();
List l = new ArrayList<A>();zatímco vy chcete asi toto:
List<A> l = new ArrayList<>();což je ekvivalent tohoto:
List<A> l = new ArrayList<A>();Jinými slovy jste přidávala do syrového listu, měla byste dostat varování. Pokud máte javu 9 (nebo 10) můžete pro rychlé testování (nejen) těchto věcí použít
jshell
, vypadá to pak nějak takto (všimněte si, že dostáváte varování v případě A i B):
jshell> class A extends Object {} | created class A jshell> class B extends Object {} | created class B jshell> List l = new ArrayList<A>(); l ==> [] jshell> l.add(new A()); | Warning: | unchecked call to add(E) as a member of the raw type java.util.List | l.add(new A()); | ^------------^ $4 ==> true jshell> l.add(new B()); | Warning: | unchecked call to add(E) as a member of the raw type java.util.List | l.add(new B()); | ^------------^ $5 ==> true
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.