Java.util.Arrays.asList(T… a). Java API içerisinde mutlaka kullanmış olduğunuz Arrays.asList() metodu ile ilgili küçük bir test cast case yazarak belkide daha önce farkında olmadığımız bir özelliğini ortaya çıkarmış olacağız. Öncelikle ilgili metodun api doclerine göz atıyoruz. (https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html)
Resim-1
JavaDoc ifadesine baktığımızda “generic var arg” input parametresi alan metodun geriye input ile aynı generic tipte List<T> döndüğünü görüyoruz, (Verdiğimiz array cinsinden girdiyi List olarak geriye dönüyor)
ayrıca açıklama kısmında “Returns a fixed-size list backed by the specified array” cümlesini okuyoruz. Bu cümle içerisindeki “fixed-size” ifadesi oldukça önemli refer ettiği şey şu oluyor, asList metodu sonucunda dönen List<T> objesi add, remove ve clear gibi işlemleri desteklemiyor. Bu işlemleri yapmayı denerseniz size “UnsupportedOperationException” atıyor. Loglarımıza yansıyan ve debug etmemizi gerektiren bu ufak ayrıntı için bir test case yazarak yazımızı sonlandıralım.
GIST: https://gist.github.com/rozaydin/b906105ed0eb8aaae177cb1eb2b7d0f2
import org.junit.Before;
import org.junit.Test;
import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;
public class arraysaslist {
private Integer[] numbers;
@Before
public void initArray() {
// 1. create a sample numbers array
numbers = new Integer[100];
IntStream.range(0, 100).forEach((elem) -> {
numbers[elem] = elem;
});
}
@Test(expected = UnsupportedOperationException.class)
public void testAdd() {
// 1. convert the array to fixed-size list
List<Integer> numbersFixedSizeList = Arrays.asList(numbers);
// invoke add method (UnsupportedOperationException shall be thrown)
numbersFixedSizeList.add(578);
}
@Test(expected = UnsupportedOperationException.class)
public void testRemove() {
// 1. convert the array to fixed-size list
List<Integer> numbersFixedSizeList = Arrays.asList(numbers);
// invoke remove method (UnsupportedOperationException shall be thrown)
numbersFixedSizeList.remove(0);
}
@Test(expected = UnsupportedOperationException.class)
public void testClear() {
// 1. convert the array to fixed-size list
List<Integer> numbersFixedSizeList = Arrays.asList(numbers);
// invoke clear method (UnsupportedOperationException shall be thrown)
numbersFixedSizeList.clear();
}
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
TAGs : Arrays.asList() metodu, Arrays.asList() kullanimi, Arrays.asList() nasil kullanilir, Arrays.asList() nedir, java Arrays.asList() kullanimi, Arrays.asList() java, Arrays.asList() ornek, Arrays.asList() ornek case,