Là một Nhà phát triển Java giàu kinh nghiệm và là người sành thời trang, chúng tôi thường được giao nhiệm vụ tạo ra các giải pháp độc đáo cho các vấn đề phức tạp. Một vấn đề nan giải như vậy là việc lựa chọn ngẫu nhiên từ một bảng liệt kê (Enum) trong Java. Bạn có thể đã đoán rằng không có phương thức tích hợp nào trong Java cung cấp trực tiếp chức năng này - một tính năng phổ biến trong các ngôn ngữ như Python. Mặc dù vậy, Java vẫn cung cấp cho chúng ta những công cụ cần thiết để tạo ra giải pháp của riêng mình.
Kiểu liệt kê, những anh hùng thầm lặng của nhiều chương trình, về cơ bản là một kiểu có trường bao gồm một tập hợp các hằng số cố định. Thông thường chúng ta muốn chọn một giá trị ngẫu nhiên từ tập hợp này. Mục đích của bài viết này là để minh họa quá trình này.
Tạo Enum ngẫu nhiên trong Java
public static <T extends Enum<?>> T randomEnum(Class<T> clazz){ Random random = new Random(); int x = random.nextInt(clazz.getEnumConstants().length); return clazz.getEnumConstants()[x]; }
Hãy chia nhỏ phương pháp 'randomEnum' này. Đầu tiên, chúng tôi xác định phương thức này được gõ tổng quát - điều này có nghĩa là nó có thể chấp nhận bất kỳ loại enum nào. 'Ngẫu nhiên' là lớp tạo ra một luồng số giả ngẫu nhiên mà chúng tôi sử dụng ở đây để xác định chỉ mục ngẫu nhiên để lựa chọn. Chỉ mục 'x' này là một int, giá trị tối đa của nó bị giới hạn bởi kích thước của bảng liệt kê của chúng tôi hoặc chính xác hơn là độ dài của mảng hằng số enum của 'clazz' (đối tượng Lớp) đã truyền của chúng tôi.
Sau khi tạo 'x', chúng tôi trả về một hằng số Enum ngẫu nhiên bằng cách lập chỉ mục mảng với 'x' được tạo ngẫu nhiên. Cái hay của phương pháp này là tính linh hoạt của nó - nó hoạt động với bất kỳ phép liệt kê nào!
Tìm hiểu về Enum trong Java
Enum trong Java là kiểu dữ liệu chứa một tập hợp các hằng số cố định. Hàm tạo Enum luôn ở chế độ riêng tư hoặc mặc định và bạn thường sử dụng Enum khi có các giá trị mà bạn biết sẽ không thay đổi, chẳng hạn như các ngày trong tuần, hướng (Bắc, Nam, Đông, Tây), v.v.
public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }
Các loại Enum mạnh hơn nhiều so với chúng ta nghĩ. Trong Java, kiểu enum là một biến thể mạnh mẽ của kiểu dữ liệu truyền thống, cho phép chúng ta xác định kiểu trả về cho một phương thức nhất định, dưới dạng tham số cho phương thức đó hoặc thậm chí là đối tượng lớp.
Cách sử dụng và tính linh hoạt của Phương pháp Java của chúng tôi
Phương thức 'randomEnum' đóng vai trò là một tiện ích hữu ích cho bất kỳ dự án Java nào. Sức mạnh của nó nằm ở tính linh hoạt của nó - chúng ta có thể gọi phương thức này với bất kỳ kiểu enum nào và nó sẽ trả về một hằng số của kiểu liệt kê đó một cách ngẫu nhiên.
Điều đáng chú ý là tính ngẫu nhiên do máy tính tạo ra là một chủ đề hấp dẫn, liên quan đến các thuật toán rất phức tạp và có vai trò then chốt trong mô phỏng cũng như tạo ra các tập dữ liệu phức tạp. Phương thức 'randomEnum' của chúng tôi là một ví dụ nhỏ nhưng mạnh mẽ về cách Java tận dụng tính chất giả ngẫu nhiên trong hộp công cụ lập trình rộng lớn của nó.
Về mặt thời trang, hãy coi phương pháp 'randomEnum' của chúng tôi giống như chiếc váy đen nhỏ trong tủ quần áo Java của bạn. Giống như chiếc váy đen nhỏ phục vụ nhiều mục đích và có thể mặc lên hoặc xuống tùy theo dịp, phương pháp 'randomEnum' của chúng tôi có thể thích ứng, phù hợp hoàn toàn với bất kỳ dự án Java nào mà bạn cần tạo các enum ngẫu nhiên, bất kể tình huống hay loại enum .