If the object x in the above example has an uninitialized property y, BeanUtil will first create a new instance of y type, and set it to property y. Then, foo property of newly created object y will be set. In the second example, yy is an array. If it is uninitialized, BeanUtil will create a new array of length 3. Then, it will create a new instance of yy type that will be stored as the third element of the array. Finally, the foo property is set.