Как создать общее поле тела для объекта уведомления, отправляемого через SimpleMessagingTemplate? - PullRequest
0 голосов
/ 22 апреля 2019

Итак, у меня есть проект, и я работаю над отправкой уведомления веб-клиенту через stomp. В настоящее время у меня работает одно уведомление, и оно отправляет объект Встреча, чтобы уведомить человека, что кто-то назначил встречу. У меня есть несколько других случаев использования, когда я хочу разместить уведомление, но текущий способ отправки уведомлений не очень модульный.

В настоящее время мы отправляем уведомление следующим образом:

simp.convertAndSend("/topic/appt/" + appointment.getId(), appointment);

Я хочу изменить это так, чтобы мы отправили simp.convertAndSend("/topic/appt/" + notification.getDestinationId(), notification);

Я настроил объект Уведомления, который содержит тип уведомления и тело. Этот тип будет использоваться для определения ответов пользовательского интерфейса на стороне клиента для получения уведомлений. Клиент использует тело для отображения соответствующей информации.

Тело уведомления может быть одним из двух объектов: Назначение и Услуга. Как бы я сделал так, чтобыtificationBody объекта Notification был универсальным, чтобы иметь возможность хранить два вышеупомянутых объекта (и, возможно, другие)?

Извещение:

package com.scheduler.notifications;

import com.scheduler.objects.Appointment;
import com.scheduler.objects.Service;

public class Notification<T> {
    private NotificationType notificationType;
    private T notificationBody;
    private String destinationId;

    public Notification(NotificationType notificationType, T notificationBody, String destinationId) {
        this.notificationType = notificationType;
        this.notificationBody = notificationBody;
        this.destinationId = destinationId;
    }

    public NotificationType getNotificationType() {
        return notificationType;
    }

    public T getNotificationBody() {
        return notificationBody;
    }

    public String getDestinationId() {
        return destinationId;
    }
}

Приведенный выше код действительно не работал, так как я получаю предупреждения компилятора, такие как Unchecked call to 'Notification(NotificationType, T)' as a member of raw type 'com.scheduler.notifications.Notification. Как правильно это делать?

...