модификатор доступа Java, выбивающий друг друга? - PullRequest
0 голосов
/ 29 октября 2018

В настоящее время я занимаюсь разработкой проекта для Android с использованием Android Studio 3 с использованием SDK 19. Моя личная цель состояла в том, чтобы сделать код без предупреждений, чтобы улучшить качество моего кода.

При настройке RecyclerViewAdapter для моего RecyclerView с ViewHolder в качестве внутреннего класса я столкнулся с таким странным поведением Android Studio, что он отмечает доступ моего ViewHolder для возможности быть приватным. Однако, когда я делаю это, я получаю ошибку уже в объявлении моего RecyclerView.Adapter класса. Любая идея, что я делаю неправильно, в частности?

Это каркасная структура моего ErrorCompactAdapter:

public class ErrorCompactAdapter extends RecyclerView.Adapter<ErrorCompactAdapter.ErrorCompactViewHolder> {

    //fields and attributes
    //cotr
    //onCreateViewHolder
    //onBindViewHolder
    //getItemCount

    protected class ErrorCompactViewHolder extends RecyclerView.ViewHolder {

        //outlets
        //cotr

    }
}

В предупреждении прямо говорится, что доступ ErrorCompactViewHolder может быть закрытым. Если я изменяю это, я получаю сообщение об ошибке, говорящее, что ErrorCompactAdapter.ErrorCompactViewHolder has a private access in ErrorCompactAdapter. Это немного сбивает с толку, вы можете себе представить? Есть идеи, если я выкопаю себе ловушку где-нибудь? Спасибо вперед.

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Android Studio предлагает вам изменить модификатор доступа с ErrorCompactViewHolder на package-private , а не на private , что является большой разницей.
Package-private - это модификатор доступа по умолчанию в Java, что означает, что класс будет доступен в пределах его пакета.

Чтобы задать модификатор доступа по умолчанию для класса (package-private), вам нужно вообще удалить модификатор доступа.

0 голосов
/ 29 октября 2018

Должно ли это быть частное статическое поле?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...