Дебаггер показывает тебе, что находится в конкретном поле конкретного экземпляра объекта. Представь, что ты создал руками ещё один экземпляр CourseCardHandler, и в поле course положил new TranscriptCourse(). У него же, очевидно, не будет поля companyName.
Проблема не в геттерах. Проблема в типах. Даже если геттеры будут, это не исправит ситуацию.
Мы, похоже, говорим про разное. Я ему просто дал ответ на вопрос, почему в через переменную с таким типом он не может достучаться до таких-то полей (а он хотел достучаться через геттер)
перед тем как создать новую строку, жава смотрит на строки в этом пуле?
Если ты инициализируешь переменную как-то так: String s = "val", тогда да, значение будет браться из пула (если оно там есть). Но если ты пишешь String s = new String("val"), то будет создана новая строка, даже если в пуле есть это значение. В этом случае подобное сравнение уже вернуло бы false
Если ты инициализируешь переменную как-то так: String s = "val", тогда да, значение будет браться из пула (если оно там есть). Но если ты пишешь String s = new String("val"), то будет создана новая строка, даже если в пуле есть это значение. В этом случае подобное сравнение уже вернуло бы false