Ajax callback function is un-callable I’ve built a Drupal 8 Form example using code found here: 
http://www.drupalcontrib.org/api/drupal/contributions%21examples%21ajax_example%21ajax_example.module/function/ajax_example_dependent_dropdown/8

The code, when run, dispalys 2 selects.  When a change is made to the first Select an Ajax call is made and is supposed to set a new set of options in the second Select.  However when changed I get a “Uncaught PHP Exception” - "The specified #ajax callback is empty or not callable."  I’ve tried multiple adjustment but am unable to get the code to run as desired.  

Any answers or ideas would be greatly appreciated.

&lt;?php
namespace Drupal\dependent_selects\Form;

use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Ajax\AjaxResponse;
use Drupal\Core\Ajax\CssCommand;
use Drupal\Core\Ajax\HtmlCommand;

include 'dependent_selects.config';

class DependentSelectsForm extends FormBase
{
public function getFormId()
{
    return 'dependent_selects';
}

public function buildForm(array $form, FormStateInterface $form_state)
{
    $options_first = $this-&gt;_ajax_example_get_first_dropdown_options();
    $formValues = $form_state-&gt;getValues();
    $selected = (isset($formValues['dropdown_first'])) ? $formValues['dropdown_first'] : key($options_first);

    $form['dropdown_first'] = array(
      '#type' =&gt; 'select',
      '#title' =&gt; 'Instrument Type',
      '#options' =&gt; $options_first,
      '#default_value' =&gt; $selected,
      '#ajax' =&gt; array(
        'callback' =&gt; 'ajax_example_dependent_dropdown_callback',
        'wrapper' =&gt; 'dropdown-second-replace',
      ),
    );

    $form['dropdown_second'] = array(
      '#type' =&gt; 'select',
      '#title' =&gt; $options_first[$selected] . ' ' . t('Instruments'),
      '#prefix' =&gt; '&lt;div id="dropdown-second-replace"&gt;',
      '#suffix' =&gt; '&lt;/div&gt;',
      '#options' =&gt; $this-&gt;_ajax_example_get_second_dropdown_options($selected),
      '#default_value' =&gt; isset($formValues['dropdown_second']) ? $formValues['dropdown_second'] : '',
    );
    return $form;
}

public function ajax_example_dependent_dropdown_callback($form,  &amp;$form_state)
{
    return $form['dropdown_second'];
}

public function _ajax_example_get_first_dropdown_options()
{
    $instType = array(
      'String' =&gt; 'String',
      'Woodwind' =&gt; 'Woodwind',
    );
    return $instType;
}

function _ajax_example_get_second_dropdown_options($key = '')
{
    $options = array(
      'String' =&gt;
      array(
        'Violin' =&gt; 'Violin',
        'Viola' =&gt; 'Viola',
      ),
      'Woodwind' =&gt;
      array(
        'Flute' =&gt; 'Flute',
        'Clarinet' =&gt; 'Clarinet',
      ),
    );
    if (isset($options[$key])) {
        return $options[$key];
    }
    else {
        return array();
    }
}

public function validateForm(array &amp;$form, FormStateInterface $form_state)
{
    $a = 1;
}
public function submitForm(array &amp;$form, FormStateInterface $form_state)
{
    $a = 1;
}


}
They way you specify your callback means that it is a function. You define it in your class, which means, it is not.

Prefix it with ::, that's a shortcut that tells Drupal that it's a method on the form class. You should also use camel case for the method's names. So, something like ::ajaxExampleDependentDropdownCallback (to be clear, you also have to rename your method, not just the callback string).

I also don't understand what you're trying to do with include 'dependent_selects.config';?