Am 21.08.2011, 14:11 Uhr, schrieb Jacob Carlborg <d...@me.com>:

BTW, you're already paying for the class info.

That could be a necessity of D's OOP implementation to fulfill the specification and while it is there that data was exported. Delphi used to have a compiler switch to include RTTI. (If I remember correctly without the compiler switch the pointer to RTTI was simply null.) Do you think that is an option? I figure if a third party library wanted it's classes to be reflected at runtime they would compile their code with that switch on. I don't quite know what your use-case is. For object serialization in Java there is an interface that has to be implemented. This would be similar to the @reflected annotation bearophile mentioned, because it is mostly a tag. RTTI for specific classes is not useless at all. I have a module with a lot of classes in a flat hierarchy. They are the typical case of several "commands" inheriting from a base class/interface declaring an "execute" method and such. Since I have the complete list of commands I could annotate them all with @reflected to set their properties from some XML definition. The usefulness of an annotation based RTTI depends solely on how many use cases it can cover. It doesn't hurt anyone who doesn't want to use it. The same goes for the compiler switch. Full reflection like in Java ... oh wait. Do you plan on writing a debugger? That's the only use case I can come up with right now?

- Marco

Reply via email to