[英]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.