They say that to prevent people whom learn java from YouTube videos instead of textbooks from making really sloppy and slow programs. Not really though, its specific to dynamic reflection. Byte code is generated after about 15 reflective calls dependant on your runtimes threshhold. I suggest you read Bloch's efficient java before labeling poor programming form in methods you don't understand.