Portál AbcLinuxu, 5. listopadu 2025 06:57
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.