Tôi có yêu cầu kỳ lạ sau đây.Cách tạo bytecode và lưu vào tệp .class?
tôi đưa ra:
- Một danh sách một số tên phương pháp.
- Tên và loại thông số của các phương pháp trên.
- Chức năng của các phương pháp trên. Điều này như sau: Đối với mỗi tham số, phương thức chuyển đổi nó thành chuỗi bằng cách sử dụng
toString
và nhận được một chuỗi các chuỗi. Đối với mảng này, phương thức áp dụng một hàmfoo
. Hàmfoo
lấy làm đầu vào kiểuString []
và kết quả đầu raString
. Các phương thức trả về số tiền trả vềfoo
. Mã sốfoo
được đưa vào bên trong đối tượng Java và được truy cập dưới dạng hộp đen.
Thông tin trong 1. và 2. có thể ở dạng văn bản hoặc tệp XML. Với mục đích này, chúng ta có thể xem xét nó có sẵn bên trong một đối tượng Java theo bất kỳ cách nào chúng ta chọn.
Nhiệm vụ là tạo tệp .class
(ví dụ: bytecode) triển khai các phương thức đó và có thể chạy trên JVM.
Tôi nghĩ rằng this assembler library sẽ là một cách để thực hiện điều đó. Bất cứ ai có thể đề xuất một cách dễ dàng hơn?
[EDIT:] Tôi có thể nghĩ ra một cách khác: đầu tiên tạo tệp .java
và sau đó biên dịch tệp để nhận tệp .class
.
[Bối cảnh:] Tôi phải thực hiện việc này cho hàng trăm phương pháp. Tôi muốn phím tắt để tôi có thể tự động hóa công việc của mình thay vì viết mã theo cách thủ công.
Xin cho biết thêm ngữ cảnh, bạn muốn đạt được điều gì ... Lý do duy nhất tôi thấy để "tạo" các phương thức cụ thể cho một hành vi chung (foo) là an toàn kiểu hữu ích trong thời gian biên dịch ...Bạn sẽ sử dụng/gọi mã được tạo như thế nào? – pgras
Tôi sẽ không gọi mã được tạo. Những gì tôi muốn làm là tạo một thư viện API (jar) cho ai đó sử dụng. Lớp sẽ có tên cụ thể, vì vậy họ sẽ biết API nào cần gọi. – Jus12
OK Tôi thấy vấn đề với hàng trăm phương pháp, danh sách các phương pháp có thay đổi thường xuyên hay không? chúng ta có thể có một ví dụ về đầu vào bạn đang sử dụng không? – pgras