Java - смешанные типы данных / печать их - PullRequest
0 голосов
/ 19 марта 2012

Допустим, у меня есть свой собственный тип данных, подобный этому:

    public class InformationType
    {
        private String brand;
        private int number;
        private double power;

        public PurchaseInfo(String brand, int number, double power)
        {
             this.brand = brand;
             this.number = number;
             this.power = power;
        }
        public String getBrand()
        {
            return this.brand;
        }
        public int getNumber()
        {
            return this.number;
        }
        public double getPower()
        {
            return this.power;
        }
    }

тогда у меня есть программа, которая печатает строки, которые являются просто строками, целыми числами или двойными, и я добавляю их все в массив того же типа, что и мой созданный:

      theInfo.add(new InformationType(theBrand, theNumber, thePower))

когда я делаю цикл, чтобы просто проверить, правильно ли я их понял, я просто получаю указатели (я думаю, что они вызваны) на них, а не на настоящую строку / int / double. Я хочу напечатать все мои типы, не используя мои геттеры. вот что я делаю:

     for (InformationType x : theInfo)
     {
          System.out.println(x);
     }

и я получаю такие вещи, как InformationType @ abcd12412413 и т. Д.

и да, я сделал информацию с:

     ArrayList<InformationType> theInfo = new ArrayList<>();

спасибо.

Ответы [ 3 ]

2 голосов
/ 19 марта 2012

Вы должны переопределить toString() в InformationType.

Переопределенный метод должен отражать то, как вы хотите, чтобы ваш экземпляр InformationType был представлен как String.

2 голосов
/ 19 марта 2012

Вам необходимо переопределить toString.Например:

public class InformationType {
    ...

    @Override
    public String toString() {
        return "{" + brand + "," + number + "," + power + "}";
    }
}

Теперь он будет автоматически вызываться println.

0 голосов
/ 19 марта 2012

Вам необходимо переопределить метод toString() в вашем классе InformationType.Запишите его так, чтобы он возвращал строку данных в нужном вам формате.Возможно, что-то вроде этого:

public String toString() {
    return String.format("%s %d %f", brand, number, power);
}

У всех объектов есть метод toString(), но реализация по умолчанию заключается в печати имени типа, знака "@" и хеш-кода объекта в шестнадцатеричном виде.Когда вы переопределяете toString(), вы можете вернуть все, что захотите.Единственное ограничение - вы не должны возвращать null.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...