Области видимости пакетов внутри java project в Eclipse

166
22 февраля 2019, 23:00

Не до конца понимаю, в чем разница между java проектами и пакетами в Eclipse IDE. Скажем, есть два проекта: ProjectA и ProjectB. ProjectA содержит класс ClassA, который помещен в package ru.yandex, класс ClassB в свою очередь помещен в package com.google. Почему не работает такой пример кода:

package com.google;
import ru.yandex.ClassA;
public class ClassB {
}

Во второй строчке кода IDE выдает ошибку

"The import ru cannot be resolved"

При этом, если кликнуть правой кнопкой мыши по ProjectB, перейти в Properties/Java Build Path и во вкладке Project добавить ProjectA, то импорт все-таки сработает. Отсюда два вопроса: почему изначально пакет из другого проекта находится не в области видимости программы и как Eclipse после изменения настроек в Build Path расширяет свою область видимости?

Answer 1

Пока вы не создали прогрмму, вы не можете говорить об области видимости программы. То, что касается проектов, то они состоят из исходных текстов .java и других ресурсов, которые компилируются при построении проекта.

Для компилятора важно знать откуда брать эти исходные файлы и куда помещать .class файлы, которые получаются после компиляции. Поскольку проекты находятся в разных папках, то компилятор проекта не знает о существовании скомпилированных классов другого проекта, пока вы не добавите этот проект в зависимость (Build Path).

И когда вы это делаете, то тем самым обновляете конфигурацию Java-проекта, после чего Eclipse автоматически перекопилирует проект и тогда зависимости из другого проекта будут видны, тем самым оичстятся ошибки.

READ ALSO
Стили в vaadin 8

Стили в vaadin 8

Недавно начал работать c vaadin 8, и все никак не получается менять стилиНапример я пишу свой стиль в файл mytheme

188
Что значит аннтотация @XmlType

Что значит аннтотация @XmlType

Есть класс, который я хочу сериализовать в XML:

199
Почему calc запускается а regedit нет

Почему calc запускается а regedit нет

Windows 10Пробую из Java запускать сторонние программы

136
Помогите реализовать слайдер на CSS

Помогите реализовать слайдер на CSS

Помогите пожалуйста реализовать простейший слайдер на css как на примере

151