reflection is the ability of a computer program to examine and modify the structure and behavior of the program at runtime.