Tại sao lại dùng generic?

chào mọi người ! Cho mình hỏi tại sao phải dùng generic để giới hạn kiểu dữ liệu mà không định nghĩa kiểu dữ liệu cho class, biến, hàm, tham số,… như cách thông thường ? cảm ơn !

Bạn vui lòng thêm tag ngôn ngữ vào nhé :smiley:

2 Likes

tại mình tưởng generic ngôn ngữ nào cũng có

Bạn cho ví dụ cụ thể.
Chứ mình code thì rất thích dùng generic, vì nó… generic.

2 Likes

Bạn xem link này nhé, có giải thích tại sao lại cần Generic, cách sử dụng cũng như những hạn chế của nó: https://gpcoder.com/2868-huong-dan-su-dung-java-generics/

3 Likes

cho ví dụ đơn giản, bạn có một danh sách liên kết, các con trỏ có thể trỏ đến các lớp animal, nó là một abstract class, tuy nhiên bạn đang muốn xây dựng một chuồng gà, một chuồng gà thì không thể lọt một con bò vô được, nhưng cả gà và bò đều kế thừa từ thằng animal nên dslk của bạn đều có thể thêm vào, để ngăn chặn việc này bạn dùng generic, hiểu nôm na là nó sẽ kiểm tra class mà bạn thêm vào có phải là con gà hay không, nếu phải thì cho thêm vào, còn không thì báo lỗi.
Dựa vào đó bạn có thể xây dựng được nhiều loại chuồng như chuồng bò, chuồng heo, chuồng vịt… bằng cách sử dụng generic mà không cần chỉnh sửa mã nguồn của dslk.

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?