Runtime introspection, or how to get class members at runtime Fin D
evilrat
evilrat666 at gmail.com
Thu Jun 7 11:39:13 UTC 2018
On Wednesday, 6 June 2018 at 13:28:02 UTC, Arafel wrote:
>
> I know it might not be the most idiomatic D, but as somebody
> with mostly a Java background (with some C and just a bit of
> C++) it seems something really straightforward to me:
> myObject.getClass().getFields() [2].
>
> Also, I know I could add some UDA or even crawl the modules and
> have this information generated automatically at compilation
> time and added to the type itself in a member, and I might even
> end up doing it, but honestly, I think it's something that the
> language should provide in a kind of easy / accessible way.
>
> Powerful as compile-time introspection is, I think runtime
> shouldn't be forgotten either :-)
>
> Thanks,
>
> A.
>
> [1]: https://dlang.org/library/object/type_info__class.html
> [2]:
> https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#getFields--
There is a library that creates reflection metadata for you. [1]
It seems a bit outdated and has some not-that-obvious compilation
errors(for example getting ctor and callling it with runtime
known type, or some other non template stuff), but other than
that seems to be working (note that I didn't thorougly tested it,
but its unittests succeeds on DMD 2.080 for both Windows x86
mscoff & x64 )
[1] https://code.dlang.org/packages/witchcraft
More information about the Digitalmars-d-learn
mailing list