cuốn sách gpt4 ai đã làm

Tại sao gọi super.finalize() được ưu tiên hơn khi ghi đè phương thức Finalize()?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 04:11:40 48 4
mua khóa gpt4 Nike

Tôi gặp lỗi SonarQube: "Chúng tôi thực sự khuyên bạn nên gọi khi kết thúc quá trình thực hiện phương pháp này super.finalize(), trong trường hợp việc triển khai gốc cũng phải giải phóng một số tài nguyên hệ thống.

nhưng tôi đã tìm thấy Object Lớp không được triển khai hoàn thiện方法。

protected void Finalize() ném Có thể ném được { }

Vậy tại sao bạn cần gọisuper.finalize()Vải len?

câu trả lời hay nhất

Điều này là không bắt buộc, đó là thành ngữ viết cuối cùng nên được tuân theo.

Nếu bất cứ lúc nào trong tương lai bạn cấu trúc lại mã của mình và lớp của bạn mở rộng thứ gì đó có thể có hoàn thiện Phương pháp của các lớp khác, cách tiếp cận này sẽ ngăn chặn các lỗi lạ.

Thành ngữ là

thử {
// Làm bất cứ điều gì cuối cùng là
}
Cuối cùng {
super.finalize();
}

Điều này đảm bảo rằng trình hoàn thiện siêu lớp, nếu có một trình hoàn thiện không tầm thường, sẽ được gọi ngay cả khi một số ngoại lệ được ném ra (vì các ngoại lệ không bị bắt trong các trình hoàn thiện nên việc thực thi của chúng chỉ dừng lại).

chắc chắn:Tránh hoàn thiện. (Java hiệu quả của Joshua Bloch, tái bản lần 2, Mục 7).

Về java - Tại sao gọi super.finalize() được ưu tiên hơn khi ghi đè phương thức Finalize()? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/31985830/

48 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress