我试图将一个对象列表转换为我自己的类类型列表。到目前为止,我所做的是:
List<Company> companies = (List<Company>)(Object) repository.findAllCompanyNames();
repository.findAllCompanyNames()
正在返回List<Object>
我的公司课程如下:
public class Company {
public Company(){}
public Company(int id, String name){
this.id = id;
this.name = name;
}
public int id;
public String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
我没有得到任何错误,问题是演员之后companies
的价值,它是:
companies = {ArrayList@11743} size = 4
0 = {Object[2]@11753}
0 = {Integer@11761} "1"
1 = "Company 1"
1 = {Object[2]@11754}
0 = {Integer@11785} "3"
1 = "Company 3"
2 = {Object[2]@11755}
0 = {Integer@11779} "4"
1 = "Company TT"
3 = {Object[2]@11756}
0 = {Integer@11764} "5"
1 = "Company 34"
4 = {Object[2]@11757}
我认为companies
列表应包含公司对象,如:
- Id: 1
- Name: Company 1
- etc ..
知道它发生了什么吗?
答案 0 :(得分:4)
不,列表不应包含Company
个对象,因为您不是检索公司,而是检查它们的名称。该方法称为findAllCompanyNames()
,它返回List<Object[]>
(运行时类型),每个元素包含(可能)公司ID和公司名称。
如果您显示存储库类,它应该更加明显,您可能会找到一个返回所需公司对象的方法。
答案 1 :(得分:0)
您是否可以使用 FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, email"]).start(completionHandler: { (connection, result, error) -> Void in
if (error == nil){
let fbDetails = result as! NSDictionary
print(fbDetails)
}else{
print(error?.localizedDescription ?? "Not found")
}
})
?您可以使用java-8
List<Object[]>
转换为List<Company>
stream
现在我们可以将List<Object[]> companies = Arrays.asList(
new Object[]{1, "Company nam 1"},
new Object[]{2, "Company nam 2"}
);
转换为companies
:
List<Company>
我希望这会有所帮助。