org.springframework.messaging.support

## Class GenericMessage<T>

- java.lang.Object
- - org.springframework.messaging.support.GenericMessage<T>

Type Parameters:
  `T` - the payload type

All Implemented Interfaces:
  Serializable, Message<T>

Direct Known Subclasses:
  ErrorMessage

    public class GenericMessage<T>
    extends Object
    implements Message<T>, Serializable

An implementation of `Message` with a generic payload. Once created, a GenericMessage is immutable.

Since:
  4.0
Author:
  Mark Fisher
See Also:
  `MessageBuilder`, Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`GenericMessage(T payload)` Create a new message with the given payload.
`GenericMessage(T payload, Map<String,Object> headers)` Create a new message with the given payload and headers.
`GenericMessage(T payload, MessageHeaders headers)` A constructor with the `MessageHeaders` instance to use.

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `equals(Object other)`
`MessageHeaders` `getHeaders()` Return message headers for the message (never `null` but may be empty).
`T` `getPayload()` Return the message payload.
`int` `hashCode()`
`String` `toString()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### GenericMessage

    public GenericMessage(T payload)

Create a new message with the given payload.

Parameters:
  `payload` - the message payload (never `null`)

#### GenericMessage

    public GenericMessage(T payload,
                          Map<String,Object> headers)

Create a new message with the given payload and headers. The content of the given header map is copied.

Parameters:
  `payload` - the message payload (never `null`)
  `headers` - message headers to use for initialization

#### GenericMessage

    public GenericMessage(T payload,
                          MessageHeaders headers)

A constructor with the `MessageHeaders` instance to use.

Note: the given `MessageHeaders` instance is used directly in the new message, i.e. it is not copied.

Parameters:
  `payload` - the message payload (never `null`)
  `headers` - message headers

### Method Detail

#### getPayload

    public T getPayload()

Description copied from interface: `Message`
Return the message payload.

Specified by:
  `getPayload` in interface `Message<T>`

#### getHeaders

    public MessageHeaders getHeaders()

Description copied from interface: `Message`
Return message headers for the message (never `null` but may be empty).

Specified by:
  `getHeaders` in interface `Message<T>`

#### equals

    public boolean equals(@Nullable
                          Object other)

Overrides:
  `equals` in class `Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Object`

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`