CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.
Bài viết trên blog CFSDN Tóm tắt về Generics trong Java (Được khuyến nghị) này được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.
Generics Java (generics) là một tính năng mới được giới thiệu trong jdk 5. Generics cung cấp cơ chế phát hiện an toàn loại thời gian biên dịch, cho phép lập trình viên phát hiện các loại không hợp lệ tại thời gian biên dịch. Bản chất của generics là một kiểu được tham số hóa, có nghĩa là kiểu dữ liệu đang được vận hành được chỉ định làm tham số.
Lớp chung.
Ví dụ: Cú pháp cơ bản của lớp generic.
?
1
2
3
|
lớp học
lớp của tôi {
giá trị t1;
}
|
Chữ t trong ngoặc nhọn <> được gọi là tham số loại và được dùng để chỉ bất kỳ loại nào. Trên thực tế, bạn có thể viết t này tùy ý, nhưng vì mục đích đặc tả, Java vẫn khuyến nghị chúng ta nên sử dụng một chữ cái viết hoa duy nhất để biểu thị các tham số kiểu. Những cái phổ biến bao gồm:
- t đại diện cho bất kỳ lớp nào nói chung.
- e đại diện cho phần tử hoặc ngoại lệ.
- k đại diện cho ý nghĩa của khóa
- v đại diện cho giá trị và thường được sử dụng cùng với k.
- s đại diện cho ý nghĩa của kiểu con, điều này sẽ được giải thích sau trong bài viết.
Ví dụ: Lớp generic giới thiệu nhiều tham số kiểu và cách sử dụng.
?
1
2
3
4
5
6
7
8
9
|
lớp học
lớp của tôi {
giá trị t1;
giá trị e2;
}
công cộng
lớp học
Bài kiểm tra {
công cộng
tĩnh
vô hiệu
main(chuỗi[] args) {
myclass myclass1 =
mới
myclass();
}
}
|
Khi các chương trình được phát triển tránh được quá trình chuyển đổi đi xuống, điều đó có nghĩa là các rủi ro về bảo mật sẽ được loại bỏ. Cố gắng không sử dụng tư thế bó bột hướng xuống. Sự xuất hiện của thuốc generic đã thay đổi hoàn toàn nhu cầu chuyển đổi theo hướng đi xuống. Sau khi giới thiệu generics, nếu loại được đặt rõ ràng, nó sẽ là loại được đặt; nếu loại không được đặt, nó sẽ mặc định là loại đối tượng.
Các phương pháp chung.
Generics có thể được sử dụng không chỉ để định nghĩa các lớp mà còn để định nghĩa các phương thức riêng lẻ. Như được hiển thị bên dưới: Ví dụ: Định nghĩa phương thức chung.
?
1
2
3
4
5
|
lớp học
lớp của tôi{
công cộng
vô hiệu
phương pháp thử nghiệm(tt) {
system.out.println(t);
}
}
|
Sự khác biệt nhỏ giữa các phương thức generic và các lớp generic là các tham số kiểu, tức là dấu ngoặc nhọn, được viết ở phía trước giá trị trả về. t in được gọi là tham số kiểu, trong khi t trong phương thức được gọi là kiểu tham số hóa, đây không phải là tham số thực trong thời gian chạy.
Tất nhiên, các tham số kiểu đã khai báo thực sự có thể được sử dụng làm kiểu của giá trị trả về.
Ví dụ: Phương thức chung sử dụng tham số kiểu làm giá trị trả về.
?
1
2
3
4
5
|
lớp học
lớp của tôi{
công cộng
t phương pháp thử nghiệm(tt) {
trở lại
t;
}
}
|
Sau khi thêm định nghĩa về generic vào lớp chương trình, vấn đề ngoại lệ classcastException sẽ tránh được, nhưng một tình huống mới sẽ nảy sinh: vấn đề thống nhất tham số.
Ví dụ: Chương trình quan sát.
?
1
2
3
4
5
6
7
8
9
10
|
công cộng
lớp học
bản thử nghiệm {
công cộng
tĩnh
vô hiệu
main(chuỗi[] args) {
message message =
mới
tin nhắn() ;
tin nhắn.setmessage(
99
);
vui vẻ(tin nhắn);
}
công cộng
tĩnh
vô hiệu
vui vẻ(tin nhắn tạm thời){
system.out.println(temp.getmessage());
}
}
|
Ví dụ: Sử dụng ký tự đại diện.
?
1
2
3
4
5
6
7
8
9
10
11
12
|
công cộng
lớp học
bản thử nghiệm {
công cộng
tĩnh
vô hiệu
main(chuỗi[] args) {
message message =
mới
tin nhắn() ;
tin nhắn.setmessage(
55
);
vui vẻ(tin nhắn);
}
công cộng
tĩnh
vô hiệu
vui vẻ(tin nhắn> tạm thời){
system.out.println(temp.getmessage());
}
}
|
Giao diện chung.
Ngoài việc được định nghĩa trong một lớp, generic cũng có thể được định nghĩa trong một giao diện.
Ví dụ: Xác định một giao diện chung.
?
1
2
3
4
|
giao diện
tin nhắn {
công cộng
vô hiệu
in(tt);
}
|
Ví dụ: Tiếp tục sử dụng generic khi định nghĩa các lớp con.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
giao diện
tin nhắn {
công cộng
vô hiệu
in(tt);
}
lớp học
tin nhắnimpl
thực hiện
tin nhắn {
@ghi đè
công cộng
vô hiệu
in(tt) {
system.out.println(t);
}
}
công cộng
lớp học
bản thử nghiệm {
công cộng
tĩnh
vô hiệu
main(chuỗi[] args) {
imessage tin nhắn =
mới
lệnh messageimpl() ;
tin nhắn.in(
"Xin chào thế giới"
);
}
}
|
Trong tương lai, các chương trình chúng ta viết chắc chắn sẽ sử dụng những giao diện chung và mọi người đều phải thành thạo chúng.
Loại tẩy xóa.
Generics là một khái niệm chỉ được giới thiệu trong Java 1.5. Trước đó, không có khái niệm về generics, nhưng rõ ràng, mã generic rất tương thích với mã của các phiên bản trước.
Điều này là do thông tin chung chỉ tồn tại trong giai đoạn biên dịch mã. Trước khi vào JVM, thông tin liên quan đến generics sẽ bị xóa.
Theo thuật ngữ thông thường, không có gì đặc biệt về các lớp chung và các lớp thông thường trong máy ảo Java.
Trên đây là phần giải thích chi tiết và tích hợp các generics trong Java được trình soạn thảo giới thiệu. Tôi hy vọng nó sẽ hữu ích cho bạn. Nếu có thắc mắc gì, vui lòng để lại tin nhắn cho tôi và trình soạn thảo sẽ trả lời bạn kịp thời. Tôi cũng xin cảm ơn mọi người đã ủng hộ trang web của tôi! .
Liên kết gốc: https://blog.csdn.net/busybox1587/article/details/88809668.
Cuối cùng, bài viết về tóm tắt (khuyến nghị) về generics trong Java kết thúc tại đây. Nếu bạn muốn biết thêm về tóm tắt (khuyến nghị) về generics trong Java, vui lòng tìm kiếm bài viết CFSDN hoặc tiếp tục duyệt các bài viết liên quan. blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!