要列出的Java动态强制转换对象<&燃气轮机;

要列出的Java动态强制转换对象<&燃气轮机;,java,Java,我需要将对象强制转换到列表 我从request参数中获取对象值List 我需要将此对象强制转换为列表。我不知道编译时的SomeClass 我可以在运行时以String的形式获取类类型 样本: 私有静态对象createList(对象){ List dd=(List)对象; //该列表包含此类的对象 Class cls=Class.forName(dd.get(0.getClass().getName()); //我想将此对象强制转换为列表 } 例如,类是jp.Dto.UserDto,那么强制转换

我需要将
对象
强制转换到
列表

我从request参数中获取对象值
List

我需要将此
对象
强制转换为
列表
。我不知道编译时的
SomeClass

我可以在运行时以
String
的形式获取类类型

样本:

私有静态对象createList(对象){
List dd=(List)对象;
//该列表包含此类的对象
Class cls=Class.forName(dd.get(0.getClass().getName());
//我想将此对象强制转换为列表
}
例如,类是
jp.Dto.UserDto
,那么强制转换应该类似于
List=(List)Objectjp.dto.UserDto
类。我只能在运行时得到这个


如何实现这一点?

您应该了解Java中的泛型(即两者之间的内容)在运行时会被删除,因此声明如下列表是完全合法的

List list = (List)someObject;
此外,还允许向该列表添加如下对象

list.add(someObjectOfACertainClass);
据我所知,正在向您传递一个对象,该对象是某个类的对象列表,您希望以编译时类型安全的方式遍历该列表。您可以执行以下操作:

private static <T> Object createList(List<T> argumentList) {
    List<T> otherList = new ArrayList<T>();
    //do something here
    return otherList;
}
private静态对象createList(列表参数列表){
List otherList=new ArrayList();
//在这里做点什么
返回其他列表;
}

基本上,我不推荐这样做,您可以这样做,甚至不需要类型限制:

 public static void main(String[] args) {
    Object list = new ArrayList<String>();
    List<Integer> integers = cast(list);
}


@SuppressWarnings("unchecked")
public static <T extends List<?>> T cast(Object obj) {
    return (T) obj;
}
publicstaticvoidmain(字符串[]args){
对象列表=新的ArrayList();
列表整数=强制转换(列表);
}
@抑制警告(“未选中”)

公共静态将对象添加到列表中:

List<FuelLoading> objList=new ArrayList<>();
                            objList.add(new FuelLoading(String.valueOf(vehicleId), String.valueOf(driverId), String.valueOf(fuelN), fillingDate, fillingTk, fillingM, userId));
List objList=new ArrayList();
添加(新加油(String.valueOf(vehicleId)、String.valueOf(driverId)、String.valueOf(fuelN)、fillingDate、fillingTk、fillingM、userId));

这些代码不足以理解您要做的事情。是否要再次将列表作为对象返回?您是否要以相同的方式迭代所有列表?为什么要传递对象而不是强类型列表。我想,您可能要寻找的一般想法是泛型()我的要求使用java反射我需要获取列表值,并希望通过循环进行itrate。使用反射API我只能获取对象..因此在获取list属性的对象值之后。我希望itrate列表值…而不是list,我需要强制转换List userList,这个用户Dto calas有一些属性,比如userId,userName,我如何从这个列表中访问这些属性值。userList.get(0)