Есть класс, в конструкторе которого вызывается другой класс, в котором в свою очередь есть публичный геттер, возвращающий значение поля.
public class A {
private B b;
private A() {
b = new B();
}
private String method() {
b.getField(); // 1
}
}
class B extends JTabbedPane {
private String f;
public String getField() {
return f;
}
}
Проблема в строке 1, метод класса В.getField недоступен.
Error:(146, 37) java: cannot find symbol symbol: method getField() location: variable pCommon of type javax.swing.JTabbedPane
Поле объявляется примерно так:
[модификатор] [статик/не статик] тип имя;
то есть минимум надо так
private B b;
У конструктора должны быть скобки:
private A() {
// smth
}
Ну и метод getField недоступен потому, что в "конструкторе" объявляется одна переменная b, доступная только в его области видимости, а в method пытаешься обратиться к методу совсем непонятной переменной b нигде даже не объявленной.
Также у метода method не указан тип выходного параметра, хотя бы void например.
В классе B — аналогично с методом.
Как это вообще работает — неизвестно.
Вопрос решен.
Моя вина, в тексте вопроса все написано верно, а в реальном коде, в классе А, вместо объявления переменной
private B b;
написал ссылку на базовый класс
private JTabbedPane b;
соответственно новые методы не были доступны.
Всем откликнувшимся спасибо.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости