Generics is nooit mijn sterkste punt geweest, maar het volgende snap ik even niet!
Ik wil graag een lijst van SelectItem objecten met wat extra features meer dan ArrayList al heeft, dus dacht ik slim te zijn en het alsvolgt op te lossen:
nu krijg ik te zien bij het compilen (en ook in mijn IDE):
Ik snap niet waarom si niet "gecast" wordt naar een SelectItem object waar zeker weten de getValue() method in zit. Volgens de auto-complete van mijn IDE is het type van si java.lang.Object
Ik wil graag een lijst van SelectItem objecten met wat extra features meer dan ArrayList al heeft, dus dacht ik slim te zijn en het alsvolgt op te lossen:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| public class SelectList<SelectItem> extends ArrayList { private String selectedValue; public String getSelectedValue() { String value = null; if (selectedValue != null) { value = selectedValues.get(0); } else { if (this.size() > 0) { SelectItem si = (SelectItem) this.get(0); value = si.getValue(); } } return value; } } |
nu krijg ik te zien bij het compilen (en ook in mijn IDE):
code:
1
2
3
4
| SelectList.java:17: cannot find symbol symbol : method getValue() location: class java.lang.Object si.getValue(); |
Ik snap niet waarom si niet "gecast" wordt naar een SelectItem object waar zeker weten de getValue() method in zit. Volgens de auto-complete van mijn IDE is het type van si java.lang.Object
The ships hung in the sky in much the same way that bricks don’t.