這是我的JavaBean
public class Employee implements java.io.Serializable{
private int id;
private String name;
public Employee(){}
public void setId(int id){
this.id=id;
}
public int getId(){
return id;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
}
想要只拿Employee的name組成一個String array
網路上我有找到這種方法轉換,但好像不能只取某個變數
List<String> list = new ArrayList<String>();
list.add("a1");
list.add("a2");
String[] toBeStored = list.toArray(new String[list.size()]);
for(String s : toBeStored) {
System.out.println(s);
}
要這樣做是因為在JSF itemvalue的值要是String型態
想問問問各位有甚麼好法子
謝謝大家
你的問題應該不只轉換
OO的概念要再加強
List<Employee> employees = new ArrayList<Employee>();
String[] employeeNames = new String[employees.size()];
for (int i = 0; i < employees.size(); i++) {
employeeNames[i] = employees.get(i).getName();
}
好讚,OO我會加強的,不過感覺對List比較不熟
剛剛試了這個式子 把JavaBean換成從資料庫抓出來的資料他不給過
List<User> u = qualityFacade.findbyDept();
String []u_buffer = new String[u.size()];
UserList = new ArrayList<String>();
for(int i=0 ; i<u.size() ; i++){
u_buffer[i]=u.get(i).getName();
UserList.add(u_buffer[i];
}
console出現User不能cast成String類別覺得很怪
我用debug mode之後他說getName這個方法不在String內怪怪ㄉ兒
一、你的命名有問題
u、u_buffer、UserList
這是三種命名規則
沒有見名知義,也不符內容
二、描述不清楚
完整程式碼長怎樣?
原始錯誤訊息是什麼?哪一行?
你 debug 做了哪些事?
三、邏輯詭異
為什麼要一個 Array 一個 List 裝一樣的東西?
鬼王很慘
好我週五再來跟你說一下程式碼
debug的部分,我只有逐步執行看為甚麼那邊會噴error
邏輯的部分,array是只要取得資料庫的某一欄位,list則是把array的值都放進去,目的是前端(itemvalue)要做一個下拉選單
感謝你耐心地回復
若開發是使用JAVA8以上建議用 stream 來處理比較簡便,像這樣...
List<User> users = qualityFacade.findbyDept();
String[] names = users.stream().map(User::getName).toArray(String[]::new);