| View previous topic :: View next topic |
| Author |
Message |
Gladis
Joined: 24 May 2006 Posts: 108
|
| Std is the standard namespace... C++ has templates. |
| |
|
|
|
|
amoralis
Joined: 22 Jun 2006 Posts: 21
|
| In java it only represents compile time checking |
| |
|
|
Gladis
Joined: 24 May 2006 Posts: 108
|
amoralis, It SHOULD affect code. Compile time checking leads to a few problems.
For instance... can't create genericized lists. |
| |
|
|
AmeliaR
Joined: 31 May 2006 Posts: 142
|
| The difference is that c++ template generate code. java's generics do not. |
| |
|
|
amoralis
Joined: 22 Jun 2006 Posts: 21
|
| That's what I just said :) |
| |
|
|
Gladis
Joined: 24 May 2006 Posts: 108
|
| But C++ is faster with worse code. So. |
| |
|
|
Aaron Zapashniy
Joined: 04 Jun 2006 Posts: 17 Location: Hungary
|
| Now i read something about variance.. and what i briefly read gave me the impression that i'd be able to specify my method as void doIt(List<Parent..>) or void doIt(List<-Parent>) |
| |
|
|
amoralis
Joined: 22 Jun 2006 Posts: 21
|
This issue Aaron Zapashniy raised is obnoxious because you can't overload methods with the only different in parameters being the object parameterizing the generic collection
I.e. doIt(List<parent> list); can't be overriden by doIt(List<Child> list); |
| |
|
|
Gladis
Joined: 24 May 2006 Posts: 108
|
Aaron Zapashniy, List<? extends Parent>
Which includes Parent and all subclasses of parent. |
| |
|
|
Aaron Zapashniy
Joined: 04 Jun 2006 Posts: 17 Location: Hungary
|
OOooh
That's nice! |
| |
|
|
Gladis
Joined: 24 May 2006 Posts: 108
|
| Or the completly useless <? super Parent>, which is the superclass and all subclasses of superclasses of Parent. |
| |
|
|
|
|
Aaron Zapashniy
Joined: 04 Jun 2006 Posts: 17 Location: Hungary
|
Gladis, <Object>  |
| |
|
|
amoralis
Joined: 22 Jun 2006 Posts: 21
|
| <- still can't use generics on a regular basis |
| |
|
|
martinar_kauaro
Joined: 18 Jun 2006 Posts: 4
|
| ? extends Foo is bad, it's not better than no generics. |
| |
|
|
Gladis
Joined: 24 May 2006 Posts: 108
|
Aaron Zapashniy, Ah, but it's more typing and harder to read!
It must be better! |
| |
|
|
amoralis
Joined: 22 Jun 2006 Posts: 21
|
| martinar_kauaro, why is it bad? |
| |
|
|
Gladis
Joined: 24 May 2006 Posts: 108
|
| martinar_kauaro, It does what we want it to do. how is that bad? |
| |
|
|
Aaron Zapashniy
Joined: 04 Jun 2006 Posts: 17 Location: Hungary
|
| I'd think it'd basically just say "hey compiler, make sure whatever i throw at this method contains Parents in one form or another" |
| |
|
|
martinar_kauaro
Joined: 18 Jun 2006 Posts: 4
|
| amoralis, Because you're again killing the typesafety. I've seen quite some code snippets that relied on generics to find "wrong object type inserted" exceptions. |
| |
|
|
amoralis
Joined: 22 Jun 2006 Posts: 21
|
martinar_kauaro, no you're not
you should be able to pass in a child class |
| |
|
|
Aaron Zapashniy
Joined: 04 Jun 2006 Posts: 17 Location: Hungary
|
If the method in question operates on the param as Parent, what harm could there be?
It'd provide exactly the level of type safety i desire.
(but WOW is that ugly and verbose syntax..) |
| |
|
|
|
|
Gladis
Joined: 24 May 2006 Posts: 108
|
| Aaron Zapashniy, Well, Java as a whole is ugly and verbose syntax. |
| |
|
|
Aaron Zapashniy
Joined: 04 Jun 2006 Posts: 17 Location: Hungary
|
Ah well. i guess i'll just declare my collections with <Parent>.
Thanks fellas.  |
| |
|
|
|