实现AMF3与Java之间数组的传递(动态创建数组)...

首先,AMF3似乎并不支持List.ArrayList等数组的解析...Java客户端传递List对象,AMF3无法解析为Array...

原因是:AMF3只支持基础数据类型...

故,需要将List等数据转换为Object[] !这样AMF3才能将Java传递的数组解析为Array...

由于数组的创建,即便一开始不赋值,也需要设置数组的length,如:String[] myString = new String[5];

故,需要动态创建Object[]数组.但往往,length一开始是并不知道,比如JDBC中ResultSet...

 

@SuppressWarnings("unchecked") public Seed_Warehouse[] findSeedWarehouseByUserID(int userID) throws SQLException { String sql = "SELECT * FROM LESOGO_SEED_WAREHOUSE WHERE USER_ID = ?"; db.doPstm(sql, new Object[] { userID }); ResultSet rs = db.getRs(); if (rs != null) { int i = 0; // 获得数据库表的行数! while (rs.next()) { i++; } Seed_Warehouse[] sws = new Seed_Warehouse[i]; rs.beforeFirst(); // 光标指向起始位置! int j = 0; while (rs.next()) { Seed_Warehouse sw = new Seed_Warehouse(); sw.setId(rs.getInt(1)); sw.setCrop_class_name(rs.getString(2)); sw.setCrop_count(rs.getInt(3)); sw.setUser_id(rs.getInt(4)); sws[j++] = sw; // 为数据具体位置下的对象赋值! } return sws; } return null; }

 

总结:

       是要认真学习下AMF3协议了...

 

 

你可能感兴趣的:(java,list,jdbc,object,String,null)