# Interface Adaptable

All Known Implementing Classes:
  `Browser, Button, Canvas, CBanner, CCombo, CLabel, ColorDialog, Combo, Composite, Control, CoolBar, CoolItem, CTabFolder, CTabItem, DateTime, Decorations, Dialog, Display, DragSource, DropDown, DropTarget, ExpandBar, ExpandItem, FileDialog, FileUpload, FontDialog, Grid, GridColumn, GridColumnGroup, GridItem, Group, Item, Label, Link, List, Menu, MenuItem, MessageBox, ProgressBar, RichTextEditor, Sash, SashForm, Scale, Scrollable, ScrollBar, ScrolledComposite, Shell, Slider, Spinner, TabFolder, TabItem, Table, TableColumn, TableItem, TaskBar, TaskItem, Template, Text, ToolBar, ToolItem, ToolTip, Tray, TrayItem, Tree, TreeColumn, TreeItem, ViewForm, Widget`

public interface Adaptable

Adaptable objects lets you add interfaces to a class and lets clients query whether an object has a particular extension. This means adaptable objects can be dynamically extended. Adapters are created by adapter factories, which are registered with an global adapter manager.

        Adaptable a = ...;
        MyExtension x = a.getAdapter( MyExtension.class );
        if( x != null ) {
          // invoke MyExtension methods on x ...
        }

Since:
  2.0

## Method Summary

Modifier and Type
Method
Description
`<T> T`
`getAdapter(Class<T> adapter)`
Returns an object which is an instance of the given class parameter associated with this object or `null` if no association exists.

## Method Details

### getAdapter

<T> T getAdapter(Class<T> adapter)

Returns an object which is an instance of the given class parameter associated with this object or `null` if no association exists.

Parameters:
  `adapter` - the lookup class
Returns:
  an object that can be cast to the given class or `null` if there is no adapter associated with the given class.