Общий метод не распознает общий тип при передаче его в качестве параметра

Я пытаюсь создать динамическое создание экземпляра:

private <F extends Fragment> void addFragment(F fragment) { fragment.setArguments(new Bundle()); FragmentTransaction tx = getFragmentManager().beginTransaction(); tx.add(R.id.container, fragment); tx.submit(); } 

Однако компилятор отклоняет tx.add(R.id.container, fragment) потому что для add(int, F) нет сигнатуры метода!

Как заставить метод add () понять, что F действительно является фрагментом?

Заранее спасибо 🙂

Solutions Collecting From Web of "Общий метод не распознает общий тип при передаче его в качестве параметра"

Это связано с тем, что вы импортировали неправильный Fragment в свой класс, что он несовместим с аргументом фрагмента метода add.

Так как вы использовали getFragmentManager() что означает, что вам нужно использовать библиотеку non support для фрагмента, чтобы позволить универсальному быть совместимым с методом add.

Убедитесь, что ваш импорт выглядит следующим образом:

 import android.app.Fragment;