powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Auto .toString()
10 сообщений из 10, страница 1 из 1
Auto .toString()
    #39860372
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Есть собственный класс Event со своей реализацией toString.
Почему здесь работает:
Код: java
1.
System.out.println(sendEvent);


А здесь выдает no suitable method found for info(Event) ?
Код: java
1.
logger.info(sendEvent);
...
Рейтинг: 0 / 0
Auto .toString()
    #39860424
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И в систем ауте и в логгере на вход принимается стринг и java автоматом должна использовать toString в обоих случаях.
...
Рейтинг: 0 / 0
Auto .toString()
    #39860428
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolasarА здесь выдает no suitable method found for info(Event) ?
Думать над смыслом сообщения об ошибке. Смотреть описание метода info( ).
...
Рейтинг: 0 / 0
Auto .toString()
    #39860430
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar....и в логгере на вход принимается стринг...
Доку не смотрел. Сорцы искать лениво.
НО "не верю" ( C )

Укажите классы, дайте ссылку на сорцы. Тогда можно разводить холивар.
...
Рейтинг: 0 / 0
Auto .toString()
    #39860434
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar в систем ауте на вход принимается стринг
неужели? а посмотреть? вдруг там перегруженные методы есть?
...
Рейтинг: 0 / 0
Auto .toString()
    #39860439
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
класс Event
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.Properties;

public class Event {

    Properties properties;

    public Event() {
        this.properties = new Properties();
    }
    
    public Event(String jsonString) throws IOException {
        StringReader reader = new StringReader(jsonString);
        this.properties = new ObjectMapper()
                .readValue(reader, Event.class)
                .getProperties();
    } 

    public Properties getProperties() {
        return properties;
    }

    public void setProperties(Properties properties) {
        this.properties = properties;
    }

    @Override
    public String toString() {
        StringWriter writer = new StringWriter();
        try {
            new ObjectMapper().writeValue(writer, this);
        } catch (IOException ex) {
        }
        return writer.toString();
    }

}


Приложение:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class JsonSerial {

    private static final Logger logger
            = LoggerFactory.getLogger(JsonSerial.class);

    public static void main(String[] args)
            throws IOException, JMSException, InterruptedException {
        Event sendEvent = new Event();
        sendEvent.getProperties().put("id", "12345678");
        sendEvent.getProperties().put("type", "transaction");
        sendEvent.getProperties().put("name", "identification");
        
        logger.info(sendEvent);
    }
}
...
Рейтинг: 0 / 0
Auto .toString()
    #39860457
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar,

Вообще, вам уже намернули:
System.out - это PrintStream ( https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#out)
У PrintStream есть метод println(Object) ( https://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html#println(java.lang.Object))
...
Рейтинг: 0 / 0
Auto .toString()
    #39860465
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. не получится в логгер кидать свой класс даже с переопределенным методом toString?
LelouchMolasar,

Вообще, вам уже намернули:
System.out - это PrintStream ( https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#out)
У PrintStream есть метод println(Object) ( https://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html#println(java.lang.Object))
...
Рейтинг: 0 / 0
Auto .toString()
    #39860469
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar,

Как аргумент для форматирования - получится.
Например, тут: https://www.tutorialspoint.com/slf4j/slf4j_parameterized_logging.htm
...
Рейтинг: 0 / 0
Auto .toString()
    #39860480
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В примере приведена конструкция:
logger.info("" + sendEvent);
которая у меня работает.
LelouchMolasar,

Как аргумент для форматирования - получится.
Например, тут: https://www.tutorialspoint.com/slf4j/slf4j_parameterized_logging.htm
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Auto .toString()
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]