1. Ana Sayfa
  2. Java
  3. Java.util.Arrays.asList(T… a)

Java.util.Arrays.asList(T… a)

Java.util.Arrays.asList(T… a). Java API içerisinde mutlaka kullanmış olduğunuz 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

static <T> List<T> asList(T… a)
Returns a fixed-size list backed by the specified array.

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ı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

TAGs : Arrays.asList() metodu, , , , , , , ,

Yorum Yap

Yazar Hakkında

Rıdvan Özaydın, lisans eğitimini Karadeniz Teknik Üniversitesi Bilgisayar Mühendisliği bölümünde, yüksek lisans eğitimini ise İstanbul Teknik Üniversitesi Bilgisayar Bilimleri bölümünde tamamlamıştır. Yazılım dünyasına üniversitenin ilk yıllarında aldığı C eğitimi ile başlamış, sektörün önde gelen firmalarında Java teknolojileri üzerine çalışmış, şu anda da Thales’de yazılım mühendisi olarak görev almaktadır.

Yorum Yap