---
schema_version: "1"
id: d85f6c7ddaa8f045700502f5b2f89879ab93a512ad80a1e5808d36c6631e3d8e
title: Casting ConnectApi Objects
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/apexcode/apex_connectapi_casting.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_connectapi_casting.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: 40987c72f2e543ce3c965e322c87c93316a54eb08e6776fe5c15da03f4fef3a4
description: It may be useful to downcast some ConnectApi output objects to a more specific type.
---
# Casting ConnectApi Objects

It may be useful to downcast some ConnectApi output objects to a more specific type.

This technique is especially useful for message segments, feed item capabilities, and record fields. Message segments in a feed item are typed as ConnectApi.MessageSegment. Feed item capabilities are typed as ConnectApi.FeedItemCapability. Record fields are typed as ConnectApi.AbstractRecordField. These classes are all abstract and have several concrete subclasses. At runtime you can use instanceof to check the concrete types of these objects and then safely proceed with the corresponding downcast. When you downcast, you must have a default case that handles unknown subclasses.

The following example downcasts a ConnectApi.MessageSegment to a ConnectApi.MentionSegment:

if(segment instanceof ConnectApi.MentionSegment) {
	ConnectApi.MentionSegment = (ConnectApi.MentionSegment)segment;
}

![Important](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/images/icon_note_important.png)

#### Important

The composition of a feed can change between releases. Write your code to handle instances of unknown subclasses.

#### See Also

- [_Apex Reference Guide_: ChatterFeeds Class](https://developer.salesforce.com/docs/atlas.en-us.264.0.apexref.meta/apexref/apex_ConnectAPI_ChatterFeeds_static_methods.htm "Apex Reference Guide: ChatterFeeds Class - HTML (New Window)")
- [_Apex Reference Guide_: ConnectApi.FeedElementCapabilities](https://developer.salesforce.com/docs/atlas.en-us.264.0.apexref.meta/apexref/apex_connectapi_output_feed_element_capabilities.htm "Apex Reference Guide:
    ConnectApi.FeedElementCapabilities - HTML (New Window)")
- [_Apex Reference Guide_: ConnectApi.MessageSegment](https://developer.salesforce.com/docs/atlas.en-us.264.0.apexref.meta/apexref/apex_connectapi_output_msg_seg.htm "Apex Reference Guide: ConnectApi.MessageSegment - HTML (New Window)")
- [_Apex Reference Guide_: ConnectApi.AbstractRecordView](https://developer.salesforce.com/docs/atlas.en-us.264.0.apexref.meta/apexref/apex_connectapi_output_abstractRecordView.htm "Apex Reference Guide:
    ConnectApi.AbstractRecordView - HTML (New Window)")