2012-06-13 21 views
6

Tôi là một người mới sử dụng Java nên các câu hỏi của tôi có thể trông giống như một sự lựa chọn dễ dàng. Nhưng tôi cần một số hướng từ các bạn. Đây là câu hỏi của tôi: Tôi có một lớp học với nhiều phương pháp, tôi muốn cung cấp cho các phương pháp này để người dùng trong một combox để lựa chọn, dựa trên lựa chọn của họ một số mã sẽ chạy. Bây giờ tôi có thể làm điều này bằng cách viết phương pháp lựa chọn chuyển đổi. Ở đâu dựa trên lựa chọn, tôi sử dụng công tắc để chạy một phương thức cụ thể.Liệt kê các chức năng như các lựa chọn trong Java

Nhưng danh sách hàm của tôi khá dài gần 200, vì vậy, câu hỏi của tôi đối với bạn là: có cách làm thông minh hơn không. Chỉ cần chỉ cho tôi đúng hướng và tôi sẽ cố gắng làm phần còn lại.

Trả lời

2

Tôi nghĩ rằng nhìn vào Java Reflection sẽ là nơi tốt nhất để bắt đầu, giả sử tôi đã hiểu những gì bạn muốn làm một cách chính xác.

1

Bạn có thể sử dụng phản ánh (bạn có thể tìm thấy rất nhiều thông tin trên Google) nhưng nó không phải là thực hành tốt để đơn giản hiển thị các phương pháp của bạn cho người dùng. Trong một ứng dụng phức tạp hơn bạn nên cố gắng trình bày riêng biệt và thực hiện đúng những gì người dùng muốn

0

Mỗi lựa chọn có thể được đại diện bởi một Enum được xây dựng như một tập hợp các chức năng gợi ý:

public enum FunctionPointer { 
F1 { 
    public SomeObject doFunction(args) { 
     YourClass.doMethod(args); 
    } 
}, 
//More enum values here... 
} 

Cú pháp sẽ cần một chút công việc, nhưng trong ứng dụng khách, bạn chỉ có thể gọi

FunctionPointer.F1.doFunction("abc"); 
+0

nó thực sự không giống với câu lệnh chuyển đổi của bạn, nhưng tôi không thích phản ánh những điều có thể thực hiện mà không có nó. – David

Các vấn đề liên quan