Как скрыть метод класса Java?

136
25 декабря 2019, 14:50

Собственно, как скрыть/сделать не доступными некоторые методы класса?
Например, перезаписанные public методы класса-родителя:

public class MyLayout extends FrameLayout {
    public MyLayout(Context context) {
        super(context);
    }
    /**
     * КАК СДЕЛАТЬ ЭТОТ МЕТОД НЕДОСТУПНЫМ / ИЗМЕНИТЬ ВИДИМОСТЬ ???
     */
    @Override
    public void addView(View child) {
        super.addView(child);
    }
}  

В C#, видел, делали что-то такое:

//Вот это
public override string ToString() {}
//Меняли на это
private new string ToString() {}  

А как в java сделать подобное никак не найду. Причем в Android Studio в классах библиотек, вот например Context, есть скрытые методы, которые выглядят так:

/** @hide */
public boolean isAutofillCompatibilityEnabled() {
    return false;
}

И, соответственно, этот метод не видим, хоть и public.
Отсюда и вопросы: как это сделано и как сделать так же?

И что это вообще за теги в комментариях (@hide, {@link } и т.п.)? Если пишу так же - говорит неизвестный тег.

Answer 1

В Java можно написать так:

public class Base {
    protected void method() { ... }
}
public class Derived extends Base {
    @Override
    public void method() { ... }
}

Сделать наоборот, то есть уменьшить видимость метода (protected -> private), не получиться.

READ ALSO
Как работать со слушателями событий в Canvas?

Как работать со слушателями событий в Canvas?

Можно ли в Android Canvas вешать слушателей на изображения(BitMap) ?

118
Не возвращается значение из потока

Не возвращается значение из потока

Есть поток которое получает с сайта имя пользователя:

157
Изменить стили css стороннего виджета iframe

Изменить стили css стороннего виджета iframe

Есть сторонний виджет, который представляет собой просто форму обратной связи iframe, вопрос: возможно ли изменить в нем какие-то стили на моем...

162
Как записать информацию в файл Node.js?

Как записать информацию в файл Node.js?

У меня есть папка с папками, в каждой из них лежит несколько markdown файлов:

130