如何在Java中像遍历数组一样简单遍历对象值?
实现自定义对象的数组式遍历
我懂你的需求——就是想像遍历普通数组那样,轻松遍历你创建的多个自定义对象对吧?你现在的问题是myObj1到myObj5是独立的变量,不是数组,所以没法用myObj[i]这种下标方式访问。咱们用最简单的方法解决:把这些对象放进一个数组里,之后遍历就和你熟悉的数组遍历一模一样了!
修改后的完整代码
class myCON{ int modelYear; String modelName; public myCON(int year, String name){ modelYear = year; modelName = name; } public static void main(String[] args){ // 把所有myCON对象统一放进数组,替代单独定义的myObj1~myObj5 myCON[] myObjs = { new myCON(2005, "Nissan5"), new myCON(2006, "Nissan6"), new myCON(2007, "Nissan7"), new myCON(2008, "Nissan8"), new myCON(2009, "Nissan9") }; // 用你熟悉的普通for循环遍历,和遍历int数组逻辑完全一致 for(int i=0; i<myObjs.length; i++){ System.out.println(myObjs[i].modelYear + " " + myObjs[i].modelName); } // 还可以用更简洁的增强for循环(foreach),写起来更省心 System.out.println("\n--- 用增强for循环遍历 ---"); for(myCON obj : myObjs){ System.out.println(obj.modelYear + " " + obj.modelName); } } }
额外补充:如果想遍历单个对象的所有属性值
如果你的需求是拿到一个myCON对象后,遍历它自身的modelYear、modelName等属性,也不用复杂的反射,直接给类加一个简单方法返回属性集合即可:
class myCON{ int modelYear; String modelName; public myCON(int year, String name){ modelYear = year; modelName = name; } // 新增方法:返回当前对象的所有属性值 public List<Object> getProperties(){ List<Object> props = new ArrayList<>(); props.add(modelYear); props.add(modelName); return props; } public static void main(String[] args){ myCON myObj = new myCON(2005, "Nissan5"); // 轻松遍历单个对象的所有属性 for(Object prop : myObj.getProperties()){ System.out.println(prop); } } }
内容的提问来源于stack exchange,提问作者Just Aname
相关产品推荐
相关产品推荐

