Kamis, Maret 14, 2019

Parameter Tipe Terikat Java

Ada saat dimana ketika programmer ingin membatasi tipe data yang ingin digunakan pada argumen dalam sebuah tipe dari parameter. Misalnya, method yang beroperasi pada angka (number) mungkin hanya ingin dibatasi menerima instance dari angka atau dari subclass-nya. Oleh karena itu, fungsi parameter tipe terikat digunakan digunakan.

satu, Bagi programmer tidak ingin menggunakan seluruh class sebagai parameter, dengan kondisi bahwa method umum Java dapat diciptakan. Serta, sebagaimana halnya constructor yang berfungsi sebagai spesial method, maka constructor juga bisa digunakan sebagai tipe parameter umum.
dua, Misalkan ingin membatasi jenis objek yang dapat digunakan dalam tipe parameter. Misalnya dalam metode yang membandingkan dua objek dan ingin memastikan bahwa objek yang diterima adalah yang sebanding.
tiga, Inovasi dari fungsi method tersebut sama dengan method tak terikat kecuali bahwa jika programmer ingin menggunakan class apapun yang tidak sebanding, maka hasilnya adalah pesan error pada program.

Deklarasi parameter tipe terikat.
satu, Daftarkan tipe nama-nama parameter.
dua, Beserta extend keyword.
tiga, dan batas atasnya (upper bound).

Sintak:
<T extends superClassName>

Catatan: Pada konteks ini, extend digunakan sebagai istilah umum untuk makna "extends" (seperti pada class). Juga, spesifikasi T hanya bisa digantikan oleh superClassName, atau subclass dari superClassName. Dengan demikian, superclass didefinisikan secara inklusif dari batas atas (upper limit).

Berikut contoh program yang mengimplementasikan tipe terikat (extend superclass) dengan cara umum.
Output :
Inside sub class C
Inside sub class B
Inside super class A

Untuk program selanjutnya dibatasi hanya pada tipe A dan sub classn-ya.
Output:
error: type argument String is not within bounds of type-variable T

Variabel terikat tipe berganda
Parameter tipe terikat dapat digunakan bersama dengan method, class, dan interface.

Java juga mendukung variabel tipe terikat berganda. Pada kasus ini A dapat menjadi sebagai interface atau class. Jika A adalah class, maka B dan C harus menjadi interface-nya. Program tidak bisa memiliki lebih dari satu class pada variabel terikat tipe berganda.

Sintak:
<T extends superClassName & Interface>

Contoh program:
Output:
Inside super class A

Tidak ada komentar:

Posting Komentar

Respon komentar 7 x 24 jam, so please be patient :D