天天看點

Arrays.asList()的使用wenti

之前一直使用Arrays.asList()方法,将數組轉為集合,今天突然發現該方法存在一些問題,主要是會報java.lang.UnsupportedOperationException異常,查閱資料之後發現問題,使用該方法轉集合的時候不可以用一些集合的方法,貼下代碼

String type = "1;2;3";
		List<String> levels = new ArrayList<String>();
		List<String> levelids = new ArrayList<String>();
		//String[] levels = null;
		if (StrUtils.isNotNull(type)) {
			String[] levelArr = type.split(";");
			levels = Arrays.asList(levelArr);
			//levelids = new ArrayList<>(levels);
		}
		
                // 此時會報錯
		levels.add("4");
		System.out.println(levels.toString());
           

目前是用下面的方法解決這個問題

String type = "1;2;3";
		List<String> levels = new ArrayList<String>();
		List<String> levelids = new ArrayList<String>();
		//String[] levels = null;
		if (StrUtils.isNotNull(type)) {
			String[] levelArr = type.split(";");
			levels = Arrays.asList(levelArr);
			levelids = new ArrayList<>(levels);
		}
		
                // 這樣可以運作
		levelids.add("4");
		System.out.println(levelids.toString());