Tôi muốn chuyển đổi mã nguồn java lúc biên dịch ngay trước khi chuyển mã nguồn tới trình biên dịch. Nói một cách khác Tôi muốn tạo ra một Preprocessor thể chuyển đổiChuyển đổi mã Java tại thời gian biên dịch
"bla bla bla"
vào bất kỳ mã khác như:
new MyClass("bla", 3)
động lực thực sự của tôi là để làm mã hóa chuỗi, như explained here
Một số người đề xuất viết bộ xử lý chú thích tùy chỉnh nhưng theo như tôi hiểu chú thích:
- chúng có thể được sử dụng để tạo tệp lớp mới, nhưng không được chuyển đổi mã hiện có trước khi được chuyển đến trình biên dịch
- chúng dường như hoạt động ở cấp gói, lớp hoặc phương pháp, chứ không phải là phương pháp/triển khai.
Một số người đề xuất sử dụng các khung như Spoon hoặc ObjectWeb ASM, nhưng các khung này có vẻ phức tạp để tìm hiểu và triển khai trên cơ sở mã hiện có.
Tôi phát triển mạnh để tìm một ví dụ đơn giản về tiền xử lý mã java cho cả hai cách tiếp cận.
Có ai nhìn thấy bất kỳ cách thông minh nào để thực hiện chuyển đổi mã, mà không thay đổi hoàn toàn một cơ sở mã lớn hiện có với nhiều mô-đun ivy? Chú thích dường như là cách tốt nhất, nhưng tôi không hiểu làm thế nào để làm điều đó.
[Jet] (http://www.eclipse.org/articles/Article-JET/jet_tutorial1.html) có thể hữu ích (Tôi không biết trong đó nhà nước có, nhưng làm việc tốt một số năm trước). JavaCC thực hiện theo cách tiếp cận tương tự. – home
Bạn có thể viết một plugin Ant/Mavin tùy chỉnh mà trước tiên sẽ thực hiện việc mã hóa và sau đó biên dịch mã của bạn. – Pushkar
Tôi có cùng một câu hỏi. Bạn có thể chia sẻ những gì bạn đã kết thúc với? – rahulmohan