Đối diện của câu hỏi này: How do I add a type to GWT's Serialization Policy whitelist?Làm cách nào để xóa các loại triển khai khỏi Chính sách tuần tự hóa của GWT?
GWT đang thêm các loại không mong muốn vào chính sách tuần tự hóa và làm đầy đủ JS của tôi. Làm cách nào để tôi cắt danh sách trắng GWT của mình bằng tay? Hoặc tôi nên ở tất cả? Ví dụ, nếu tôi đặt Danh sách giao diện trên một lớp dịch vụ GWT RPC, GWT phải tạo Javascript để xử lý ArrayList, LinkedList, Stack, Vector, ... mặc dù nhóm của tôi biết rằng chúng ta sẽ chỉ trả về một ArrayList. Tôi chỉ có thể làm cho kiểu trả về của phương thức ArrayList, nhưng tôi thích dựa vào một giao diện hơn là thực hiện cụ thể. Xét cho cùng, có thể một ngày, chúng tôi sẽ chuyển đổi và trả lại ví dụ: một LinkedList. Trong trường hợp đó, tôi muốn ép buộc chính sách tuần tự hóa GWT chỉ biên dịch cho ArrayList và LinkedList. Không có Ngăn xếp hoặc Vectơ.
Những hạn chế tiềm ẩn này có một nhược điểm lớn mà tôi có thể nghĩ đến: một thành viên mới của nhóm bắt đầu trả lại Vectors, đây sẽ là lỗi thời gian chạy. Vì vậy, bên cạnh các câu hỏi trong tiêu đề, kinh nghiệm của bạn thiết kế xung quanh điều này là gì?
Mục tiêu thiết kế của bạn là gì? Bảo vệ? hiệu suất? –
Hiệu suất, theo một từ: để giảm kích thước của JS ngay bây giờ và trong tương lai. Nếu chúng ta bắt đầu gửi Sets và Maps qua RPC, sẽ có một vụ nổ lớp khác.Mục tiêu khác là duy trì thực hành mã hóa tốt nhất. Nếu có vấn đề về bảo mật tôi không thấy, hãy cho tôi biết. – Bluu
Điều này dường như với tôi để có một giải pháp rất đơn giản. Rõ ràng bạn biết đó là gì, như bạn đã tự mình nói ra. Tại sao lại gặp nhiều rắc rối khi cố gắng thay đổi GWT? Điều đó có vẻ ngớ ngẩn. Trong tương lai, nếu bạn cần phải trả về LinkedList, thì bạn có thể thay đổi thành một giao diện. Tôi nghĩ nếu mục tiêu thiết kế của bạn là hiệu suất, thì chỉ cần thay đổi kiểu trả về thành ArrayList và được thực hiện với nó. 2 xu của tôi. –