Tôi có một enum là tư nhân, không được tiếp xúc bên ngoài lớp học. Có anyway tôi có thể làm một nhập khẩu tĩnh của loại đó, vì vậy mà tôi không phải gõ loại enum mỗi lần? Hay có cách nào tốt hơn để viết cái này? Ví dụ:Tôi có thể thực hiện nhập tĩnh của một lớp con riêng không?
package kip.test;
import static kip.test.Test.MyEnum.*; //compile error
public class Test
{
private static enum MyEnum { DOG, CAT }
public static void main (String [] args)
{
MyEnum dog = MyEnum.DOG; //this works but I don't want to type "MyEnum"
MyEnum cat = CAT; //compile error, but this is what I want to do
}
}
không, enum cung cấp các hình thức an toàn khác ngoài việc đóng gói - ví dụ, bạn có thể sử dụng chúng trong báo cáo chuyển đổi và bạn có thể nhận được cảnh báo nếu bạn bỏ qua một. Chỉ cần gắn bó với vòng loại - có vấn đề về độ dài trong java;) – Chii
@akf: Quyền của Chii, trong mã thực sự của tôi, enums có một số hành vi vượt quá những gì có thể được thực hiện một cách trivially với hằng số tĩnh. Tôi chỉ đơn giản hóa tất cả những điều đó cho câu hỏi vì vậy nó sẽ là ví dụ tối thiểu. Tôi đoán tôi chỉ bị mắc kẹt với tên vòng loại dài (lâu hơn "MyEnum'" trong mã thực sự của tôi không may ...) – Kip
@Kip: trong trường hợp này, tại sao bạn chấp nhận câu trả lời này? – Thilo