Làm cách nào để sử dụng Giao diện người tiêu dùng trong Java?

Lam Cach Nao De Su Dung Giao Dien Nguoi Tieu Dung Trong Java



Trong Java, “ Người tiêu dùng ” giao diện đại diện cho một hoạt động nhận một đầu vào duy nhất và thực hiện một số hành động trên đó mà không trả về kết quả. Nó cũng cung cấp một cách linh hoạt để xác định các hoạt động tùy chỉnh có thể được sử dụng trong lập trình chức năng như biểu thức lambda. Blog này minh họa việc triển khai giao diện Người tiêu dùng trong Java.

Làm cách nào để sử dụng Giao diện người tiêu dùng trong Java?

Các ' Người tiêu dùng ” giao diện cung cấp đóng gói hoặc hành vi có thể được chuyển qua và thực thi tại các vị trí khác nhau trong chương trình. Nó thúc đẩy hành vi tái sử dụng có thể được áp dụng cho các đầu vào khác nhau mà không cần sao chép mã. Giao diện Người tiêu dùng bao gồm hai phương thức cụ thể là “ và sau đó() ' Và ' chấp nhận() ”.







Truy cập các ví dụ dưới đây để hiểu cả hai chức năng cùng với các ví dụ về codec:



Ví dụ 1: Sử dụng Phương thức “andThen()”



Nhà phát triển có thể xâu chuỗi nhiều “ Người tiêu dùng ” hoạt động hoàn toàn bằng cách sử dụng “ và sau đó() ' phương pháp. Nó trả về một cái mới Người tiêu dùng ” thực hiện hoạt động của dòng điện “ Người tiêu dùng ' ví dụ. Sau đó, hoàn thành các hoạt động của sắp tới/sau “ Người tiêu dùng ' ví dụ. Đây là phương pháp mặc định được sử dụng rộng rãi cho quá trình “ Thành phần ”.





Cú pháp cho “ và sau đó() ” được chèn bên dưới:

và sau đó ( Người tiêu dùng < ? siêu T > sau đó )



Các ' và sau đó() ” phương pháp kết hợp người tiêu dùng hiện tại “ siêu ” với một người tiêu dùng khác “ sau đó ”. Và nó thực hiện hoạt động của người tiêu dùng hiện tại trước, sau đó là hoạt động của người tiêu dùng được cung cấp.

Hãy để chúng tôi đi qua một chương trình để hiểu rõ hơn:

nhập java.util.ArrayList;
nhập java.util.LinkedList;
nhập java.util.List;
nhập java.util.function.Consumer;

gốc lớp công khai {
public tĩnh void main ( Chuỗi đối số [ ] )
{
// tạo phương thức chính
Người tiêu dùng < Danh sách < số nguyên > > nhân = dataEle - >
{
( intj = 0 ; j < dữ liệuEle.size ( ) ; j++ ) {
dữ liệuEle.set ( j, 5 * dữ liệuEle.get ( j ) ) ;
}
} ;
// Người tiêu dùng để hiển thị một danh sách các số nguyên
Người tiêu dùng < Danh sách < số nguyên > >
bản in = dataEle - > dữ liệuEle.stream ( ) .cho mỗi ( k - > Hệ thống.out.print ( k+ '' ) ) ;

Danh sách < số nguyên > dataEle = ArrayList mới < số nguyên > ( ) ;
dữ liệuEle.add ( 4 ) ;
dữ liệuEle.add ( 7 ) ;
dữ liệuEle.add ( 12 ) ;
dữ liệuEle.add ( 16 ) ;
nhân lên.andThen ( bản in ) .chấp nhận ( dữ liệu ) ;
}
}

Giải thích đoạn mã trên:

  • Đầu tiên ' Người tiêu dùng ”, “ LinkedList ” và các tiện ích liên quan được nhập vào tệp Java. Sau đó, lớp chính với tên “ Nguồn gốc ' được tạo ra.
  • Tiếp theo, tạo giao diện “Người tiêu dùng” kiểu Danh sách có tên “ nhân ” và đặt nó bằng với “ Lập danh sách ” sẽ được tạo bên dưới.
  • Nó sử dụng một “ ” vòng lặp lặp lại cho đến hết độ dài của “ Lập danh sách ” đặt tên “ dữ liệu ” và nhân từng phần tử dữ liệu của “ dữ liệu ' với ' 5 ”.
  • Sau đó, một giây “ Người tiêu dùng ” giao diện được tạo để in từng phần tử trên bảng điều khiển được truy xuất sau quá trình nhân từ một luồng.
  • Bây giờ, hãy tạo và thêm các phần tử dữ liệu giả trong phần “ dữ liệu ' Lập danh sách.
  • Cuối cùng, “ và sau đó() ” phương thức được gọi với “ chấp nhận() ” phương pháp chấp nhận “ dữ liệu ” ArrayList và trả về kết quả của “ nhân ' theo thứ tự.

Sau khi kết thúc giai đoạn thực hiện:

Ảnh chụp nhanh cho thấy tác vụ nhân đã được hoàn thành bằng cách sử dụng “ và sau đó() ” phương pháp của “ Người tiêu dùng ” giao diện.

Ví dụ 2: Sử dụng Phương thức “accept()”

Các ' chấp nhận() ” method là một method chức năng của “ Người tiêu dùng ” giao diện. Nó chấp nhận một đối số kiểu “ t ” và thực hiện các thao tác được chỉ định/cần thiết trên đó. Giá trị của ' Vô giá trị ” không được cung cấp cho nó vì nó không chấp nhận “ Vô giá trị ” giá trị và tạo ra một ngoại lệ.

Cú pháp của nó được đưa ra dưới đây:

chấp nhận vô hiệu ( < mạnh > t mạnh > t )

Trong cú pháp trên, “ t ” là đối số duy nhất mà các hoạt động nhất định được vận hành.

Hãy để chúng tôi truy cập khối mã bên dưới để hiểu rõ hơn:

nhập java.util.ArrayList;
nhập java.util.LinkedList;
nhập java.util.List;
nhập java.util.function.Consumer;

// tiện ích nhập khẩu TRONG Java tài liệu
gốc lớp công khai {
public tĩnh void main ( Chuỗi đối số [ ] ) // tạo phương thức chính
{
Người tiêu dùng < số nguyên > phân tán = k - > System.out.println ( k ) ;
phân tán.accept ( 255 ) ;
Người tiêu dùng < Danh sách < số nguyên > > nhân = dataEle - >
{
( int k = 0 ; k < dữ liệuEle.size ( ) ; k++ )
dữ liệuEle.set ( k, 5 * dữ liệuEle.get ( k ) ) ;
} ;

Người tiêu dùng < Danh sách < số nguyên > >
bản in = dataEle - > dữ liệuEle.stream ( ) .cho mỗi ( j - > Hệ thống.out.print ( j + '
'
) ) ;
Danh sách < số nguyên > dataEle = ArrayList mới < số nguyên > ( ) ;
dữ liệuEle.add ( 4 ) ;
dữ liệuEle.add ( 7 ) ;
dữ liệuEle.add ( 12 ) ;
dữ liệuEle.add ( 16 ) ;
// Thực hiện sửa đổi bằng cách chấp nhận ( )
nhân.accept ( dữ liệu ) ;
// Triển khai dispList bằng cách chấp nhận ( )
bản in.accept ( dữ liệu ) ;
}
}

Giải thích đoạn mã trên:

  • Đầu tiên ' Người tiêu dùng ” giao diện có tên “ phân tán ” được tạo để hiển thị các tham số được cung cấp trên bảng điều khiển mà không cần thực hiện bất kỳ thao tác nào.
  • Bây giờ, “ chấp nhận() ” phương thức được gọi bởi “ phân tán ” Người tiêu dùng, và giá trị của “ 255 ” được truyền cho phương thức này.
  • Tiếp theo, một “ Người tiêu dùng ” giao diện được tạo sử dụng “ ” vòng lặp để áp dụng phép nhân trên từng phần tử cư trú của ArrayList có tên “ dữ liệu ”.
  • Sau đó, tạo thêm một “ Người tiêu dùng ” giao diện để hiển thị “ dữ liệu ” các phần tử có kết quả sau khi áp dụng phép nhân đến từ luồng.
  • Tiếp theo, khởi tạo ArrayList “ dữ liệu ” với các yếu tố dữ liệu giả và sử dụng “ chấp nhận() ” phương pháp với “ nhân ” giao diện.
  • Cuối cùng, hãy gọi “ chấp nhận() ” phương pháp sử dụng “ bản in ” để hiển thị kết quả sau khi áp dụng phép nhân trên nhật ký bảng điều khiển.

Sau khi kết thúc thực hiện:

Ảnh chụp nhanh ở trên hiển thị rằng nhiều giao diện người tiêu dùng đã được gọi cùng một lúc bằng cách sử dụng “ chấp nhận() ' phương pháp.

Ví dụ 3: Xử lý ngoại lệ cho hàm After

Ngoại lệ phát sinh khi “ sau đó ” chức năng của “ và sau đó() ” phương thức chứa một “ chấp nhận() ' phương pháp. Điều này tạo ra một giao diện chứa dữ liệu được xử lý bởi các giao diện bằng cách sử dụng các phương thức giao diện Người tiêu dùng như hình bên dưới:

nhập java.util.ArrayList;
nhập java.util.LinkedList;
nhập java.util.List;
nhập java.util.function.Consumer;

gốc lớp công khai {
public tĩnh void main ( Chuỗi đối số [ ] )
{
Người tiêu dùng < Danh sách < số nguyên > > nhân = dữ liệuEle - >
{
( intj = 0 ; j < = dataEle.size ( ) ; j++ )
dữ liệuEle.set ( j, 5 * dữ liệuEle.get ( j ) ) ;
} ;
// Người tiêu dùng để hiển thị một danh sách các số nguyên
Người tiêu dùng < Danh sách < số nguyên > >
in = dữ liệuEle - > dữ liệuEle.stream ( ) .cho mỗi ( Tôi - > Hệ thống.out.print ( tôi + '' ) ) ;
Danh sách < số nguyên > dataEle = ArrayList mới < số nguyên > ( ) ;
dữ liệuEle.add ( 4 ) ;
dữ liệuEle.add ( 7 ) ;
dữ liệuEle.add ( 12 ) ;
dữ liệuEle.add ( 16 ) ;
thử {
in.andThen ( nhân ) .chấp nhận ( dữ liệu ) ;
}
nắm lấy ( ngoại lệ e ) {
System.out.println ( 'Ngoại lệ: ' + và ) ;
}
}
}

Giải thích về khối mã trên:

  • Đầu tiên ' Người tiêu dùng ” giao diện được tạo đơn giản là nhiều “ 5 ” số nguyên với các phần tử dữ liệu nằm trong ArrayList được cung cấp.
  • Tiếp theo, thứ hai “ Người tiêu dùng ” giao diện được tạo để hiển thị từng thành phần dữ liệu của ArrayList mà luồng nhận được.
  • Sau đó, ArrayList được tạo và khởi tạo với các giá trị kiểu số nguyên giả.
  • Sau đó, “ thử ” khối được sử dụng trong đó “ và sau đó() ” phương thức được gọi bởi “ in ” giao diện.
  • Nó gây ra “ IndexOutOfBoundsNgoại lệ ' bởi vì ' ” vượt quá giới hạn lặp vòng lặp, điều này được giải quyết bằng cách “ nắm lấy ' khối.

Sau khi kết thúc giai đoạn thực hiện:

Ảnh chụp nhanh cho thấy rằng IndexOutOfBoundsException đã được tạo bởi trình biên dịch.

Phần kết luận

Các ' Người tiêu dùng ” giao diện cung cấp một cách để xác định hành vi có thể sử dụng lại và thực hiện các hành động trên dữ liệu đầu vào mà không trả về kết quả. Nó bao gồm “ chấp nhận() ' Và ' và sau đó() ” phương pháp. Nó thường được sử dụng cho các tác vụ xử lý dữ liệu, trong đó người dùng cần thực hiện một hành động trên từng thành phần của bộ sưu tập hoặc luồng. Đó là tất cả về cách sử dụng và triển khai giao diện Người tiêu dùng trong Java.