ví dụ Bất động thế giới:
Nếu bạn xây dựng dự án của bạn với jdesktop 0.8, nhưng tàu với jdesktop 0.9, mã của bạn vẫn sẽ sử dụng 0,9 tính năng, vì nó tận dụng lợi thế của việc ràng buộc trễ, tức là mã mà các cuộc gọi mã của bạn là phiên bản được nạp bởi trình nạp lớp, không phân biệt phiên bản mà nó được biên dịch chống lại. (Điều này trái ngược với các liên kết, nhúng phiên bản biên dịch của mã được gọi vào ứng dụng.)
Để phản ánh, giả sử bạn đang cố gắng nhắm mục tiêu Java 1.5 và 1.6, nhưng muốn sử dụng các thành phần tab trong 1.6 nếu chúng có sẵn, bạn sẽ kiểm tra sự hiện diện của chúng bằng cách sử dụng sự phản chiếu trên lớp JTabbedPane để tìm phương thức setTabComponentAt
. Trong trường hợp này, bạn đang xây dựng dựa trên Java 1.5, không có các tính năng đó, vì vậy bạn không thể gọi chúng trực tiếp hoặc biên dịch sẽ thất bại. Tuy nhiên nếu trên hệ thống của người dùng cuối bạn thấy mình đang chạy với 1.6 (ràng buộc trễ đi vào chơi ở đây), bạn có thể sử dụng sự phản chiếu để gọi các phương thức không tồn tại trong 1.5.
Chúng có liên quan; nhiều cách sử dụng sự phản chiếu dựa vào sự ràng buộc muộn để có ích, nhưng về cơ bản chúng là những khía cạnh khác nhau của ngôn ngữ và việc thực hiện ngôn ngữ của nó.
Không chắc hiệu suất thực sự là không gian tốt nhất để đưa vào tài khoản khi so sánh các tính năng khác nhau như của một ngôn ngữ, họ nhằm mục đích giải quyết vấn đề khác nhau ... –