Tôi quan tâm đến việc sử dụng một số tính năng NIO2 trong SDK Java 7 nếu có (cụ thể là file system watchers), tuy nhiên tôi không muốn biên dịch các lớp của mình cho Java 7 và loại trừ Java 6 runtimes. Chủ yếu là vì tôi muốn giữ lại khả năng tương thích với Mac OS X và cũng bởi vì tôi không muốn buộc người dùng của mình nâng cấp.Sử dụng các tính năng Java 7 SDK trong Java 6
Điều này có khả thi không? Cách tốt nhất để làm điều đó là gì? Bất kỳ liên kết hoặc ví dụ nào?
Dưới đây là một số cách tôi có thể tưởng tượng: biên dịch tệp lớp với trình biên dịch khác và tải động dựa trên phiên bản Java? Hoặc có thể sử dụng sự phản chiếu? Hoặc có thể chỉ có một cài đặt trình biên dịch cho Java 7 để tạo các lớp tương thích Java 6?
Tôi đang tìm một giải pháp không biến thành một mớ hỗn độn xấu xí :), lý tưởng nhất là tôi có thể viết hai triển khai của một giao diện, một cách sử dụng các tính năng mới và không có, sau đó chọn một động để thực hiện các cuộc gọi phản chiếu khắp nơi.
Vì tôi cho rằng các tính năng này bắt đầu tồn tại trong SE7, bạn nghĩ bạn sẽ có thể biên dịch bằng chế độ tương thích SE6 như thế nào và giữ lại chúng? – KevinDTimm
Những gì tôi muốn làm là chỉ sử dụng chúng khi chương trình được thực hiện trên một thời gian chạy Java 7, và rơi trở lại hành vi khác nếu không. Lưu ý rằng tôi đang nói về các tính năng của Java 7 SDK chứ không phải các tính năng ngôn ngữ. –
Xin lỗi, hai cơ sở mã sẽ cần thiết (hoặc, ít nhất, có một cơ sở xử lý tệp riêng biệt cho từng môi trường và tạo đầu ra riêng cho từng phiên bản như mã được biên dịch trong Phiên bản X thường không hoạt động trong bất kỳ Phiên bản được đánh số thấp hơn nào) – KevinDTimm