我有一个包含一些值的对象数组。我想将这个对象数组转换为用户定义的自定义类。
EX : Object[] obj = new Object[4];
obj[0] = "one";
obj[1] = "two";
通过使用java8的stream api将obj [0]设置为setFName并将obj [1]设置为setLName,可以将此对象转换为Employee对象。我尝试了几种方法,但收到错误。
输出
Employee e = Stream.of(Obj).map().....
类似上面的内容
答案 0 :(得分:1)
如果您需要将Object[]
转换为Employee
- 只需直接执行:
Employee e = new Employee();
e.setFirstName(obj[0]);
e.setLastName(obj[1]);
您可能需要一个接受Object[]
public Employee(Object[] that){
firstName = obj[0];
lastName = obj[1];
}
如果您真的想出于某种原因使用java-8
中的内容,可以使用Optional
Employee e = Optional.of(obj).map(o -> {
Employee tmp = new Employee();
tmp.setFirstName(o[0]);
tmp.setLastName(o[1]);
return tmp;
}).get();
但这并没有给你任何优于构造函数的优势,而且更令人困惑。即使你有Optional
的拷贝构造函数变体,只有当obj可能为null时才有意义:
Employee e = Optional.of(obj).map(o -> new Employee(o))
.orElseGet(() -> some default value);