2015-11-27 2 views
0

Фактически я реализую одну программу, в которой я получаю информацию из базы данных, и я устанавливаю эту информацию в один объект с помощью сеттеров, и я просто хочу напечатать эти параметры объекта без использования system.out.println(object.getHeadCount());Как печатать содержимое объекта Java без использования геттеров

Я просто хочу, как если бы я давал system.out.println(object);, поэтому, используя этот код, он должен печатать данные в формате Json или в любом другом читаемом формате.

Как это сделать. Потому что мой объект содержит 30 полей, поэтому очень тяжело писать 30 геттеров для печати данных.

+2

Overri de 'toString()' –

+0

Как Винс. Можете ли вы дать мне какой-нибудь пример? –

+2

Вы могли бы привести пример Google. Тонны примеров онлайн. –

ответ

3

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

Нормальный путь

class User { 
    private String firstName; 
    private String lastName; 

    public User(String firstName, String lastName) { 
     this.firstName = firstName; 
     this.lastName = lastName; 
    } 

    @Override 
    public String toString(){ 
     return this.firstName + " " + this.lastName; 
    } 
} 

Использование Apache Commons

class User { 
    private String firstName; 
    private String lastName; 

    public User(String firstName, String lastName) { 
     this.firstName = firstName; 
     this.lastName = lastName; 
    } 

    @Override 
    public String toString(){ 
     return new ToStringBuilder(this) 
      .append("firstName", firstName) 
      .append("lastName", lastName) 
      .toString(); 
    } 
} 

Использование Google Guava

class User { 
    private String firstName; 
    private String lastName; 

    public User(String firstName, String lastName) { 
     this.firstName = firstName; 
     this.lastName = lastName; 
    } 

    @Override 
    public String toString(){ 
     return MoreObjects.toStringHelper(this) 
      .add("firstName", firstName) 
      .add("lastName", lastName) 
      .toString(); 
    } 
} 
1

Вам просто нужно переопределить метод класса toString(), прочитать об этом в java doc для Object class. Большинство IDE поддерживают автоматическую генерацию для всех полей вашего класса или для некоторых из них. Только, например:

class User { 
    private String name; 
    private String surname; 

    User(String name, String surname) 
    { 
     this.name = name; 
     this.surname = surname; 
    } 

    @Override 
    public String toString() 
    { 
     return this.name+" "+this.surname; 
    } 
} 
0

Вы должны переопределить метод toString(). если вы используете eclipse, тогда вы можете попробовать щелкнуть правой кнопкой мыши в редакторе, вы найдете его под Source -> Generate toString()

0

Чтобы создать метод toString, вы можете просто добавить его так.

Метод ToString является частью

java.lang.Object

Так реализуется в каждом классе.

Смежные вопросы