我有一个名为RoomClassRes的类,它有getter& setter id,name等,在我的主类中我声明了String [] = {}。
使用此代码我使用两个变量
List<RoomClassRes> roomClassRes
和String[] roomClassList
我想在String[]
name
所有List<RoomClassRes>
这对我不起作用
@Override
public void onResponse(Call<List<RoomClassRes>> call, Response<List<RoomClassRes>> response) {
List<RoomClassRes> roomClassRes = response.body();
// 1
Object[] roomClassObj = roomClassRes.toArray();
for (int i = 0; i < roomClassObj.length; i++){
RoomClassRes roomClass = (RoomClassRes)roomClassObj[i];
roomClassList[i] = roomClass.getName();
}
// 2
int i = 0;
for(RoomClassRes rc : roomClassRes){
roomClassList[i] = rc.getName();
i++;
}
}
没有任何作用。
答案 0 :(得分:0)
使用Java 8.您可以在这里使用流API,首先获取RoomClassRes
的流,然后将每个房间映射到其名称并转换为数组。
public String[] toStringArray(List<RoomClassRes> rooms) {
return rooms.stream()
.map(RoomClassRes::getName)
.toArray(String[]::new);
}
使用Java 7.首先使用列表大小创建数组,然后填充数组并返回。
public String[] toStringArray(List<RoomClassRes> rooms) {
String[] result = new String[rooms.size()];
for (int index = 0; index < rooms.size(); index++)
result[index] = rooms.get(index).getName();
return result;
}
请注意,您不能将数组声明为String[] result = {}
,因为这会创建一个空数组,您可以像上面的函数一样提供数组的大小。