I have a method like this:
public static <T> boolean isMemberOf(T item, T[] set) { for (T t : set) { if (t.equals(item)) { return true; } } return false; }
Now I try to call this method using a char
for T
:
char ch = 'a'; char[] chars = new char[] { 'a', 'b', 'c' }; boolean member = isMemberOf(ch, chars);
This doesn't work. I would expect the char
and char[]
to get autoboxed to Character
and Character[]
, but that doesn't seem to happen.
Any insights?
There is no autoboxing for arrays, only for primitives.
If declaring member data as primitive data types, will values be serialized if object is declared serializable? Yes, everything that is not marked transient will be serialized, including primitives.
You can have arrays of any of the Java primitives or reference variables. The important point to remember is that when created, primitive arrays will have default values assigned, but object references will all be null.
Arrays of primitive types hold primitive types. "Every Java Programmers knows, Array is a collection of Objects, it doesn't matter whether it contains primitive data types or Strings." Wrong. An array is an object, but it doesn't necessarily contain objects.
There is no autoboxing for arrays, only for primitives. I believe this is your problem.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With