https://bugzilla.novell.com/show_bug.cgi?id=633376
https://bugzilla.novell.com/show_bug.cgi?id=633376#c1 Jonathan Pryor <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #1 from Jonathan Pryor <[email protected]> 2010-08-24 20:07:30 UTC --- This is trickier than I originally thought. The problem is that we're not generating Invoker subclasses for generic wrapper types. These are needed so that Android.Runtime.Extensions.JavaCast<T>() can create a non-abstract type at runtime of the appropriate target type. (Thus, if an instance of the abstract AdapterView<T> is needed, JavaCast<T>() would create an AdapterViewInvoker<T>.) The reason why we're not generating it is because it's tricky; we'd need to get this to compile: namespace Java.Util { public abstract class Dictionary : Java.Lang.Object { public abstract Java.Lang.Object Get (Java.Lang.Object key); } public abstract class Dictionary<K,V> : Dictionary { public abstract V Get (K key); } internal class DictionaryInvoker<K,V> : Dictionary<K,V> { // Ruh-roh! How do we override both Dictionary.Get() AND // Dictionary<K,V>.Get()? // ... // We don't. :-/ } } (OK, because of #634125 Get() isn't currently abstract, but it should be.) Thus is the flaw in trying to mimic Java "raw types" -- it leads to "impossible" C# code (or at least code in bad form). One *possible* solution would be to drop the entire idea of exposing raw types in the first place (e.g. dump Java.Util.Dictionary), only expose generic types (Java.Util.Dictionary<K,V>), and then things are ~sane. Then if you REALLY, REALLY needed to make use of Java's raw type functionality, you could use Extensions.JavaCast<T>(). Michael: thoughts? -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
