|
|
|
|
|
by int_19h
3504 days ago
|
|
It does them. But it repeats the story with generics, where back-compat (in this case, lack of reified generics) requires hacks for acceptable performance. For example, in Java, you have this:
http://docs.oracle.com/javase/8/docs/api/?java/util/function... Note all the permutations. This is necessary, because there's no way to define a generic interface that would have acceptable perf, due to boxing. So you end up defining separate types for things like int->int, int->int->int, long->long etc. And then if you need e.g. bool->int, well, that's just too bad. Whereas in C#, you just have Func<...> and Action<...>, and they work with all permutations of all primitive and user-defined types. |
|
Actually, that's going away with Java 9 (or 10). Luckily.