I've read a few books on different DI frameworks, and I see the term "reify" or "reified" (past tense) thrown around, but I can't get a firm grasp on what that actually means code-wise.
The wikipedia definition states
make (something abstract) more concrete or real.
I've also read What do “reify” and “reification” mean in the context of (functional?) programming?, which kind of confirms the above definition in a programming context.
But I can't get a picture in my head of how this applies in code (in the context of DI). The reason for the question is that I am trying to debug a stacktrace by looking at some HK2 source code, and I see variables/methods such as reified
and snippets like if (!reified)
.
So I would like to get a code example of when something is not reified and when/how it becomes reified, and maybe a little better explanation of how the above definition applies in the context of DI.
Note: Though the question is tagged hk2 and cdi, I imagine this question could be answered by anyone knowledgeable in DI, as I don't think the term is strictly tied to Java DI. I have seen the term used in a book on Ninject (a C# framework).