در پست های قبل به Reflection Oriented بودن جاوا اشاره شده بود.


Reflection: توانایی اصلاح ساختار و رفتار برنامه در زمان اجرا.(زمانی که برنامه در JVM در حال اجراست)

یکی از موارد استفاده از reflection، زمانیست که می خواهیم از یک object متد خاصی را  در صورت وجود صدا بزنیم اما تایپ این object را نمیدانیم. جاوای استاتیک چنین اجازه ای به ما نمی دهد اما با reflection این کار ممکن است.


از این قابلیت بیشتر برای نوشتن Framework استفاده می شود. هر چند که reflection قابلیت بسیار خوبی ست اما بهتر است تنها توسط برنامه نویسان حرفه ای و آن هم در مواردی که راهی جز استفاده از reflection وجود ندارد، مورد استفاده قرار گیرد.