1. 程式人生 > >Java 如何將List 轉為List型別

Java 如何將List 轉為List型別

因在寫通用方法時有個需求,要將List<實體類> 轉為List<Object>型別,這樣方便統一處理。


於是就想當然的這麼強轉(Student為實體類):

List<Student> list = new ArrayList<Student>();
List<Object> objList = (List<Object>)list;

然而報錯:Cannot cast from List<Student> to List<Object>。

好吧,然後把程式碼改一下遍歷一個一個轉了:

import java.util.ArrayList;
import java.util.List;


public class ObjectList {
	public static void main(String[] args) {
		List<Student> list = new ArrayList<Student>();
//		List<Object> objList = (List<Object>)list;	//Cannot cast from List<Student> to List<Object>
		List<Object> objList = toObject(list);
	}
	
	static public <E> List<Object> toObject(List<E> list){
		List<Object> objlist = new ArrayList<Object>();
		for(Object e : list){
			Object obj = (Object)e;
			objlist.add(obj);
		}
		return objlist;
	}
}

有木有哪位好漢解釋下,這個報錯具體是為啥??

----------------------------------------------------------------------------------------------------------------------------tag

思考了好長時間,看了下java程式設計思想關於泛型的部分,有一丁點啟發吧,不知道對錯:

List<Object> 這裡面的型別Object並不是一個泛型,也不是作為一個所有型別的父類,僅僅只是一個具體的Object類而已,所以arrayList集合中實體的型別必須要是Object型別才行。而如果把List<Object>改為泛型List<T>的話就完美解決,它可以允許arrayList集合種類型為類和型別而無限制。

相關推薦

Java 如何List 轉為List型別

因在寫通用方法時有個需求,要將List<實體類> 轉為List<Object>型別,這樣方便統一處理。 於是就想當然的這麼強轉(Student為實體類): List<Student> list = new ArrayList<S

Java Gson 使用,Gson字串轉為list

Gson 是 Google 提供的用來在 Java 物件和 JSON 資料之間進行對映的 Java 類庫。可以將一個 JSON 字串轉成一個 Java 物件,或者反過來。 物件轉為字串 String ps =gson.toJson(person); 字串轉為物件 Pers

java map轉List物件

  Collection<實體類> valueCollection2 = map2.values();   List<實體類> valueList= new ArrayList<Purcha

關於陣列轉為list的方法Arrays.asList(arr)的缺陷

對於多數人來說,想要將某個陣列轉為List都會選擇Arrays類的asList()方法。其實這個方法並不能應付所有情況。請看下面的示例: package com; import java.util.Arrays; import java.util.List; publ

Java word轉為pdf jacob方式

name .aspx false quit void exception tof ant div package com.doctopdf; import java.io.File; import com.jacob.activeX.ActiveXComponent;

Java一個基本資料型別轉換為String的方法及效率比較

把一個基本資料型別轉為字串型別,有三種方法。 假設a是integer型別的資料 方法1:a.toString(); 方法2:String.valueOf(a); 方法3:a+""; 效率比較: 方法1效率最快、其次到方法2、最後才是方法3; 原因: 1.a

oracle Number型欄位轉為時間型別 毫秒轉為時間型別

將number型別轉成日期型別:如將毫秒轉日期 SELECT TO_CHAR(欄位名 / (1000 * 60 * 60 * 24) + TO_DATE(‘1970-01-01 08:00:00’, ‘YYYY-MM-DD HH24:MI:SS’), ‘YYY

Java二進位制轉為ascii碼

public class ToAscii { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStrea

javaGBK轉為utf-8

/** * 將一個GBK編碼的txt文件轉化為UTF-8的XML檔案 * @author SUNBIN * */ public class ConvertXML { public static void main(String[] args) { getXML

Java Excel轉為圖片、html、XPS、XML、CSV

通過文件格式轉換,可滿足不同辦公場合對文件操作的需求。本文將介紹轉換Excel文件為其他常見文件格式的方法。通過文中的方法,可支援將Excel轉換為包括PDF、圖片、html、XPS、XML、CSV、PCL、ODS、PostScript、以及Office Excel不同版本,如,version97-2003,

java"[a,b,c]" 型別字串轉成 list 即[a,b,c]格式

參考:https://zhidao.baidu.com/question/427016122.html String demo = "[a,b,c]"; String demosub = demo.substring(1,demo.length()-1); String demoArray[]

數組轉為list集合的時候,通過構造器創建集合是創建了一個引用,不會修改數組。

jpg 引用 集合 技術 pos 數組 alt .cn clas 在將數組轉為list集合的時候,通過構造器創建集合是創建了一個引用,不會修改數組。

【redis,1】java操作redis: string、list、map、自己定義的對象保存到redis中

n) spa 存儲 div ber sys mil 操作 write 一、操作string 、list 、map 對象 1、引入jar: jedis-2.1.0.jar 2、代碼 /

使用java8的lambdalist轉為map(轉)

實體 nts acc UNC illegal identity 簡潔 tps username 常用方式 代碼如下: public Map<Long, String> getIdNameMap(List<Account> accounts)

JavaList轉成String[] 以及List轉成String

今天在做自然語言處理的使用用到了資料結構之間的轉換問題,現在將這一類問題的解決方法統一記錄,方便日後使用。 首先供上Java JDK8的API文件:https://docs.oracle.com/javase/8/docs/api/ 1.List轉String[] String []

JPA出參Iterable轉為List

  Iterable<Entity> geted = entityDao.findAll();  List<Entity> list = Lists.newArrays(

SWIG: Python的list轉為C++的char **型別

Converting Python list to a char ** A common problem in many C programs is the processing of command line arguments, which are usually

python中資料結構容器(list、dict、tuple、set)和C++、JAVA中的匯出資料型別, 陣列

list(列表):語法:列表形如 [1, 2, 3, 4] [‘小明’,‘小紅’,] ,用中括號括住,裡面是字串、布林,每一項逗號分開。 建立 宣告變數時 中括號、項,建立一個非空的列表。 num_list = [1,2,3,4] 建立一個空列表,之後再修改

java list轉為陣列以及hashmap對key排序的用法

java list轉為陣列的用法 List tlist=new ArrayList(); String[] sArray=new String[tlist.size()]; tlist.toArray(sArray); //geowave 中如下例子:分解多個G

Javalist資料取出並加入分隔符拼接,轉換成String

方法一: public String listToString(List list, char separator) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < list.size(); i++