You only need to use the Object part if you declare it - either as a variable or a parameter. So only in "public NewObjectData(Object objects)" should you use it.
Now if you fix this (and the other errors related to the adding), your code will still not compile. The reason is that your ArrayList is generic with type T, and Object may not match T - the compiler can't tell at compile time.
Only if you change Object to T will you be able to solve this. Well, that, or stop using ArrayList<T> and start using something more generic like ArrayList<Object> - that can store anything.
There is no ArrayList constructor that accepts an array argument. You can convert the array to a List using java.util.Arrays.asList() or you can *manually* insert each element of an array into a newly created ArrayList. You cannot pass an array to an ArrayList constructor.
Some problems are so complex that you have to be highly intelligent and well informed just to be undecided about them. - Laurence J. Peter
Joined: Sep 26, 2008
So I took the advice to not use T and use <Object>. I did the below, and this compiled, but no data was loaded. Am I missing something else?
Joined: Sep 26, 2008
Originally posted by Garrett Rowe: There is no ArrayList constructor that accepts an array argument. You can convert the array to a List using java.util.Arrays.asList() or you can *manually* insert each element of an array into a newly created ArrayList. You cannot pass an array to an ArrayList constructor.
This doesn't make sense to me, because my requirements state: "Use an ArrayList object. Its constructor has an 'Object' array (ie Object  objects) as its parameter. It creates the ArrayList object, then in a loop, it adds the 'Object' objects from the array to the ArrayList." (I've replaced the original class name with 'Object' - I hope this isn't too confusing.)
You can add arrays to an ArrayList, easy.And an array counts as an Object, so it will add nicely. But go and have a look at the API for constructors, and you see what Garrett was telling you. Check very carefully what you are supposed to do, before going round saying there are mistakes in the assignment specification. Your lecturer will probably have run the exercise and know what works.
What's more, we are simple naive souls who believe everything you tell us; if you write Object we think you mean Object; if you meant a different class, please write Foo because we all know Foo isn't a real class (well, not usually).
If you read carefully what you have posted, you are traversing the array with a for-each loop where you call the elements "item" and adding "objects."
I still think you would have been better parameterising your class so you can use T or T as Rob first suggested.
Joined: Jan 17, 2006
I'm not sure what to think of your comment at this line: