Generics trong Java là gì? - Hướng dẫn cho người mới bắt đầu



Bài viết này về Generics trong Java sẽ cung cấp một cái nhìn ngắn gọn về generics java là gì và các loại khác nhau của nó cùng với các ví dụ.

Hãy xem xét một ví dụ mà bạn phải lập danh sách các sinh vật sống ở một địa phương. Không quan trọng đó là con người, động vật hay thực vật. Tất cả những gì quan trọng là một sinh vật sống. Trong trường hợp này, bạn sẽ nhóm tất cả chúng thành 'Sinh vật sống' và không phân loại chúng. Tương tự, khi bạn phải lưu trữ một số dữ liệu, điều quan trọng với bạn là nội dung chứ không phải kiểu dữ liệu và đó là nơi bạn sử dụng Generics. Generics trong là một tính năng ngôn ngữ cho phép sử dụng các kiểu và phương pháp chung.

Dưới đây là danh sách các chủ đề mà tôi sẽ đề cập trong bài viết này:





cách chấm dứt chương trình trong java

Generics trong Java là gì?

Generics là một thuật ngữ biểu thị một tập hợp các đặc điểm ngôn ngữ liên quan đến việc định nghĩa và sử dụng các kiểu và phương pháp Chung. Các phương thức Java Generic khác với các phương thức và kiểu dữ liệu thông thường. Trước Generics, chúng tôi đã sử dụng để lưu trữ bất kỳ loại đối tượng nào, tức là không chung chung . Bây giờ, Generics buộc lập trình viên để lưu trữ một loại đối tượng cụ thể.

Bây giờ bạn đã biết Generics trong Java là gì, hãy tiến xa hơn và hiểu tại sao bạn cần Java Generics.



Tại sao Java Generics?

Nếu bạn nhìn vào thì bạn sẽ thấy rằng hầu hết các lớp đều nhận tham số / đối số của kiểu Đối tượng. Về cơ bản, trong biểu mẫu này, chúng có thể lấy bất kỳ kiểu Java nào làm đối số và trả về cùng một đối tượng hoặc đối số. Về cơ bản chúng là không đồng nhất tức là không thuộc loại tương tự.

FrameworkHierarchy - Generics trong Java - Edureka

Đôi khi trong ứng dụng Java, kiểu dữ liệu của đầu vào không cố định. Đầu vào có thể là một số nguyên , đến Phao nổi hoặc là . Để gán đầu vào cho của loại dữ liệu phù hợp, phải tiến hành kiểm tra trước. Theo cách tiếp cận truyền thống, sau khi lấy đầu vào, kiểu dữ liệu của đầu vào được kiểm tra và sau đó được gán cho biến của kiểu dữ liệu phù hợp. Khi logic này được sử dụng, độ dài của mã và thời gian thực thi được tăng lên. Để tránh điều này, Generics đã được giới thiệu . Khi bạn sử dụng Generics, các tham số trong mã được tự động kiểm tra tại thời điểm biên dịch và nó đặt kiểu dữ liệu theo mặc định. Vì vậy, đây là nơi bạn cần khái niệm về generic trong Java.



Bây giờ bạn đã có được một số thông tin chi tiết về Generics, hãy tiếp tục và xem xét các cách khác nhauGenerics có thể được áp dụng cho mã nguồn.

Các loại Java Generics

Có 4 cách khác nhau Generics có thể được áp dụng trong Java và chúng như sau:

  1. Loại chung loại
  2. Giao diện chung
  3. Phương pháp chung
  4. Trình tạo chung

Bây giờ chúng ta hãy hiểu sâu hơn về cách áp dụng chung cho lớp loại.

1. Loại chung loại

Một lớp được cho là Chung nếu nó khai báo một hoặc nhiều biến kiểu. Các kiểu biến này được gọi là các tham số kiểu của . Hãy hiểu điều này với sự trợ giúp của một ví dụ. Trong ví dụ dưới đây, tôi sẽ tạo một lớp với một thuộc tính x và loại thuộc tính là một đối tượng.

class Genericclass {private Object x public void set (Object x) {this.x = x} public Object get () {return x}}

Ở đây, khi bạn khởi tạo lớp với một kiểu nhất định, lớp chỉ được sử dụng với kiểu cụ thể đó. Ví dụ. Nếu bạn muốn một thể hiện của lớp giữ giá trị x thuộc loại ‘ Chuỗi ‘, Thì lập trình viên nên đặt và lấy kiểu. Vì tôi đã khai báo loại thuộc tính cho Đối tượng, nên không có cách nào để thực thi hạn chế này. Một lập trình viên có thể đặt bất kỳ đối tượng nào và có thể mong đợi bất kỳ loại giá trị trả về nào từ lấy phương pháp vì tất cả các kiểu Java đều là kiểu con của lớp học.

Để thực thi loại hạn chế này, chúng tôi có thể sử dụng các chỉ số chung như sau:

class Genericclass {// T là viết tắt của 'Type' private T x public void set (T x) {this.x = x} public T get () {return x}}

Bây giờ bạn có thể yên tâm rằng lớp sẽ không bị lạm dụng với các loại sai. Một ví dụ đơn giản về' Lớp chung ”Trông giống như hình dưới đây:

Genericclass instance = new Genericclass () instance.set ('Edureka') instance.set (10) // Điều này sẽ gây ra lỗi thời gian biên dịch

Vì vậy, đó là cách nó hoạt động. Điều nàytương tự cũng đúng cho giao diện. Hãy nhanh chóng xem xét một ví dụ để hiểu, cách thông tin loại chung có thể được sử dụng trong các giao diện trong java.

2. Giao diện Chung

An đề cập đến các kiểu dữ liệu trừu tượng. Họ cho phép được thao tác độc lập với các chi tiết trong biểu diễn của chúng. Ngoài ra, chúng tạo thành một hệ thống phân cấp trong ngôn ngữ. Hãy hiểu cách áp dụng kiểu chung cho các giao diện trong Java.

cách cài đặt php trên windows 10
// Giao diện định nghĩa giao diện chung GenericInterface {T2 PerformExecution (T1 x) T1 ReverseExecution (T2 x)} // Một lớp thực hiện lớp giao diện chung Genericclass thực hiện GenericInterface {public Integer PerformExecution (String x) {// mã thực thi} public String ReverseExecution ( Số nguyên x) {// mã thực thi}}

Tôi hy vọng bạn có thể hiểu cách Generics có thể được áp dụng cho lớp kiểu và giao diện. Bây giờ, hãy đi sâu hơn vào bài viết này và hiểu nó hữu ích như thế nào đối với các phương thức và hàm tạo.

3. Phương pháp Chung

Các phương thức chung tương tự như các lớp chung. Họ chỉ khác nhau ở một khía cạnh là thông tin phạm vi hoặc loại chỉ nằm bên trong phương thức. Các phương thức chung giới thiệu các tham số kiểu riêng của chúng.

Hãy hiểu điều này bằng một ví dụ. Dưới đây là một ví dụ về một phương pháp chung có thể được sử dụng để tìm tất cả các lần xuất hiện của các tham số kiểu trong danh sách các biến.

public static int countAllOccurrences (T [] list, T element) {int count = 0 if (element == null) {for (T listElement: list) if (listElement == null) count ++} else {for (T listElement: list ) if (element.equals (listElement)) count ++} return count}

Nếu bạn vượt qua danh sách Chuỗi tìm kiếm trong phương pháp này, nó sẽ hoạt động tốt. Nhưng nếu bạn cố gắng tìm một Số trong danh sách Chuỗi, nó sẽ báo lỗi thời gian biên dịch.

Sự tương tự này cũng tương tự với hàm tạo. Hãy lấy một ví dụ về hàm tạo chung và hiểu cách hoạt động của nó.

4. Trình tạo chung

Để xây dựng là một khối mã khởi tạo đối tượng mới được tạo. A người xây dựng giống với một phương thức thể hiện trong J ava nhưng nó không phải là một phương thức vì nó không có kiểu trả về. Người xây dựng có cùng tên với lớp và trông giống như thế này trong J ava mã. Bây giờ chúng ta hãy lấy một ví dụ và hiểu cách nó hoạt động.

class Dimension {private T length private T width private T height // Phương thức khởi tạo chung public Dimension (T length, T width, T height) {super () this.length = length this.width = width this.height = height}}

Trong ví dụ trên, phương thức khởi tạo của lớp Dimension có thông tin kiểu. Vì vậy, bạn có thể có một phiên bản thứ nguyên với tất cả các thuộc tính của một loại duy nhất. Vì vậy, đây là cách bạn có thể sử dụng các hàm tạo kiểu generics. Tôi hy vọng bạn đã hiểu các loại generic trong Java.

Bây giờ chúng ta hãy tiến xa hơn và xem xét những ưu điểm của Generics trong Java.

Ưu điểm của Generics trong Java

1. Khả năng tái sử dụng mã

Bạn có thể soạn một chiến lược hoặc một lớp hoặc một một lần và sử dụng cho bất kỳ loại hoặc bất kỳ cách nào bạn cần.

2. Truyền các loại cá nhân không bắt buộc

Về cơ bản, bạn đã khôi phục thông tin từ mọi lúc, bạn cần phải đánh máy. Đánh máy ở mỗi nhiệm vụ phục hồi là một cơn đau nửa đầu chính. Để loại bỏ cách tiếp cận đó, thuốc generic đã được giới thiệu.

3. Thực hiện một thuật toán không chung chung

dữ liệu trong khoa học là gì

Nó cũng có thể tính toán các thuật toán hoạt động trên nhiều loại mặt hàng khác nhau được loại an toàn.

Đó là tất cả về lợi thế của Java Generics. Với điều này, chúng ta đến phần cuối của bài viết này về Generics trong Java. Tôi hy vọng bạn thấy nó có nhiều thông tin và giúp bạn hiểu được Java Generics.

Kiểm tra của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Chúng tôi ở đây để giúp bạn từng bước trên hành trình của bạn, để trở thành một người ngoài câu hỏi phỏng vấn java này, chúng tôi còn đưa ra một chương trình giảng dạy được thiết kế cho sinh viên và các chuyên gia muốn trở thành một Nhà phát triển Java. Khóa học được thiết kế để cung cấp cho bạn khởi đầu về lập trình Java và đào tạo bạn về cả khái niệm Java cốt lõi và nâng cao cùng với các khung Java khác nhau như Hibernate & Spring.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của 'Generics trong Java ' bài báo và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.