Я не знаю, откуда вы понимаете, что «в принципе» он должен печатать «abcdef». Где это задокументировано?
Что-то вроде [C@6e1408
, конечно, not случайный бред - это тот же способ построения строки из объекта, как и любой другой тип, который не переопределяет toString()
inherits - это представление типа ([
, указывающего массив; C
, указывающий тип примитива char
), за которым следует хэш-код идентификатора в шестнадцатеричном формате. Подробнее см. Документацию для Object.toString()
. Как это бывает, массивы не переопределяют toString
.
Если вы хотите [a, b, c, d, e, f]
, вы можете использовать Arrays.toString(char[])
. Если вы хотите abcdef
, вы можете использовать new String(char[])
.