Адаптеры классов возможны в Java с использованием одного наследования.В качестве примера из шаблона проектирования для макетов , предположим, что мы должны адаптировать флажки AWT для использования вместе с флажками Swing, для этого мы можем написать адаптер класса.
Код пользовательского интерфейса в SwingЧтобы определить, установлен ли флажок, выполняется метод isSelected.Но флажки AWT не поддерживают isSelected (), вместо них используется getState ().
Таким образом, мы можем написать адаптер, чтобы обернуть флажок SWT и адаптировать getState () к isSelected ()
public class CheckboxAdapter extends Checkbox
{
public CheckboxAdapter(String n)
{
super(n);
}
public boolean isSelected()
{
return getState();
}
}
Теперь мы можем работать с адаптированными флажками AWT, как если бы мы использовали стандартные флажки Swing, когда дело касается метода isSelected.
public void itemStateChanged(ItemEvent e)
{
String outString = new String("Selected: ");
for(int loopIndex = 0; loopIndex
<= checks.length - 1; loopIndex++){
if(checks[loopIndex].isSelected()) {
outString += " checkbox " + loopIndex;
}
}
text.setText(outString);
}
РЕДАКТИРОВАТЬ: Истинный адаптер класса невозможен в Java, если ониесли бы мы могли наследовать от нескольких классов, которые мы хотим имитировать в классе адаптера.
Также см. http://www.journaldev.com/1487/adapter-design-pattern-in-java-example-tutorial для двух примеров в Java, использующих адаптер класса и адаптер объекта, для достижения одного и того же результата.