Tôi có trình tạo tùy chỉnh chỉ tạo mã cho các lớp somes trong dự án của tôi. Các mã sau đây là lúc bắt đầu của phương pháp generate
, và đặt tất cả các lớp tôi sẽ cần phải làm việc trên trong danh sách clazzes
GWT TypeOracle.getTypes không trả về tất cả các loại
TypeOracle oracle = context.getTypeOracle();
JClassType markerInterfaceType = oracle.findType(MY_PARENT_CLASS.class.getName());
List<JClassType> clazzes = new ArrayList<JClassType>();
for (JClassType classType : oracle.getTypes()) {
if (!classType.equals(markerInterfaceType)
&& classType.isAssignableTo(markerInterfaceType)) {
clazzes.add(classType);
}
}
Mã này đã không thay đổi trong hơn một năm, nhưng kể từ tuần trước đó có vẻ như một vài lớp học không được đưa vào tài khoản bởi máy phát điện.
Sau khi đào một số, tôi phát hiện ra rằng những lớp học không phải là ngay cả trong danh sách trả về bởi oracle.getTypes()
- Những lớp học bị bỏ qua không mới lớp tạo ra (một số bị bỏ không thay đổi trong vài tháng)
- As far như tôi có thể nói, không có cách nào để phân biệt một lớp sẽ bị bỏ qua khỏi bất kỳ lớp nào khác
- Không nâng cấp phiên bản gwt của chúng tôi (một số chúng tôi đang sử dụng 2.5.0, những người khác 2.5.1)
- Không nâng cấp trong gói được sử dụng bởi những classe s hoặc
oracle.findType(MISSING_CLASS.class.getName())
lợi nhuậnnull
- vấn đề chỉ xuất hiện đối với một số người, nhưng không phải trên các lớp cùng
- đổi tên lớp có vấn đề dường như khắc phục sự cố
đoán tốt nhất của tôi sẽ là tôi có một vấn đề bộ nhớ cache ở đâu đó, nhưng tôi không biết phải tìm đâu.
Bạn đã thử xóa nội dung của thư mục gwt-UnitCache chưa? Nó thường xuyên hơn không giúp sửa chữa các lỗi dường như lạ như thế này cho tôi. Ngoài ra, bạn có một số tên ví dụ về các lớp bị thiếu không? Khi đổi tên chúng giúp, bên cạnh một vấn đề liên quan đến bộ nhớ đệm này cũng có thể là tên liên quan. –