Why Use Generics?
Dari materi sebelumnya temen-temen ada yang bingung? tentang di materi element collection kok beda cara penulisannya dengan array biasa yaitu seperti berikut:
1
2
3
4
5
6
7
8
9
10
11
package tdi.training.java.core.data;
public class TypeOfArray {
public static void main(String[] args){
Integer[] intValues = new Integer[10];
Double[] doubleValues = new Double[5];
String[] stringValues = new String[15];
}
}
Tetepi ketika menggunakan java.util.List
ada penggunakan <>
atau yang biasanya dinamakan dengan diamonds contohnya seperti berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package tdi.training.java.core.data;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
public class TypeOfListOrMap{
public static void main(String[] args){
List<String> listOfString = new ArrayList<>();
List<Integer> listOfInteger = new ArrayList<>();
Map<String, Object> mapValues = new HashMap<>();
}
}
Nah pasti jadi pertanya kenapa harus menggunakan <>
(generics type). Padahal dengan koding seperti ini saja sudah bisa jalan
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package tdi.training.java.core.data;
import java.util.List;
import java.util.ArrayList;
public class NoGenericsTypeInList {
public static void main(String[] args){
List listValue = new ArrayList();
listValue.add("Value");
// will be need converted because the type of list is object
String singleValue = (String) listValue.get(0);
}
}
Nah coba perhatikan lagi di perintah untuk mengabil index 0
, nah disitu kita memberikan nilai ke valiable singleValue
dengan tipe java.lang.String
kita harus melakukan conversi tipe data, karena variable listValue
tidak memiliki tipe data yang pasti jadi secara default nilainya bertipe java.lang.Object
sedangkan ketika menggunakan generic type kita tidak perlu melakukan conversi tipe data contohnya seperti berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package tdi.training.java.core.data;
import java.util.List;
import java.util.ArrayList;
public class GenericsTypeInList {
public static void main(String[] args){
List<String> listValue = new ArrayList();
listValue.add("Value");
// no need convert, karena udah menggunakan tipe data String
String singleValue = listValue.get(0);
}
}
Yuk simak juga videonya,
Dan jika temen-temen belajar hal baru kali ini jangan lupa buat Like, Subcribe, dan Share ke temen kalian. Terimakasih!!!