ejemplos del mundo real:
Si usted construye su proyecto con jdesktop 0,8, pero nave con jdesktop 0.9, el código se siguen utilizando los 0.9 características, porque aprovecha la vinculación tardía, es decir, el código que llama el código es la versión que carga el cargador de clases, independientemente de la versión contra la que se compiló. (Esto es opuesto a los enlazadores, que incorporan la versión en tiempo de compilación del código llamado en la aplicación.)
Para su reflexión, supongamos que está tratando de apuntar a Java 1.5 y 1.6, pero quiere usar componentes de tabulación en 1.6 si están disponibles, entonces verificará su presencia mediante el uso de la reflexión en la clase JTabbedPane para encontrar el método setTabComponentAt
. En este caso, compila contra Java 1.5, que no tiene esas características, por lo que no puede invocarlas directamente o la compilación fallará. Sin embargo, si en el sistema del usuario final se encuentra ejecutando en contra de 1.6 (el enlace atrasado entra en juego aquí) puede usar el reflejo para llamar a los métodos que no existían en 1.5.
Están relacionados; muchos usos de la reflexión se basan en el enlace tardío para ser útil, pero son aspectos fundamentalmente diferentes del lenguaje y su implementación.
No está seguro de rendimiento es realmente la mejor dimensión a tener en cuenta al comparar dichas características diferentes de una lengua, su objetivo es resolver diferentes problemas ... –