[英]convert ArrayList<Object> to ArrayList<AnotherType>
我有一個接口:
public interface ICentrala extends Remote{
int registerGate(Object gate) throws RemoteException;
}
和類:
“門”類:
public class Gate{
int number;
int in=0;
int out=0;
...
}
“中央”級
...
ArrayList<Object> listaBramek = new ArrayList<Object>();
...
public int registerGate(Object bramka) {
listaBramek.add(bramka);
return 0;
}
...
現在例如我想添加 2 個門:
Gate gate1 = new Gate();
gate1.number=1;
Gate gate2 = new Gate();
gate2.number=2;
registerGate(gate1)
registerGate(gate2)
現在我想獲取現有門的所有名稱。 我嘗試過的是:
public void getGates(){
for (Object object: listaBramek){
System.out.println(object)
}
}
但是在 system.out.println 中的對象中,"number" 在 之后不存在。 我無法對界面進行任何更改。 預先感謝您的幫助
不確定我完全理解你,但你可以覆蓋類 Gate 中的 toString() 方法:
@Override
public String toString() {
return "gate number: " + number;
}
在Gate
類中創建一個 getter 方法可能會更好,如下所示:
public int getNumber(){
return number;
}
然后在用Gate
對象填充listaBramek
列表后,您可以循環瀏覽它們並在轉換為Gate
對象后打印出該值
for(Object object : listaBramek){
System.out.println(((Gate) object).getNumber());
}
強制轉換是必要的,因為Object
沒有定義number
變量, Gate
對象有並且是Object
類的擴展。 當你循環你怎么做時,即使它們是Gate
對象,你也可以像對待通用Object
一樣使用它們,因為
Object object:listaBramek
然而,這不是最佳的並且容易出現運行時錯誤,因為listaBramek
列表的限制不夠——它應該只允許Gate
對象存儲在其中,除非您願意做進一步的故障保護。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.