Область видимости интерфейса

176
05 апреля 2018, 14:56

И интерфейс и класс имеют модификатор доступа public. Почему нельзя декларировать переменную интерфейса в классе ? //интерфейс

public interface B {
}

//класс

package com.nure;
public class A {
    private B b;
}
Answer 1

В интерфейсе B не объявлен пакет. Это означает, что B находится в пакете по-умолчанию, а следовательно импортировать его нельзя и обратиться к нему из именованного пакета (com.nure) не получится.

Чтобы исправить:

  • Пропишите пакет в файле B.java. Например:

    //выберите имя по вкусу
    package com.nure.interfaces;
    

    Перенесите файл B.java в соответствующую директорию.

  • Если в результате A и B окажутся в разных пакетах, то импортируйте B:

    //в A.java
    import com.nure.interfaces.B;
    
READ ALSO
Jenkins java.io.FileNotFoundException: (Permission denied) при выполнении кода Groovy

Jenkins java.io.FileNotFoundException: (Permission denied) при выполнении кода Groovy

Создал проект в Jenkinse, который должен писать текст с переменными в файл пробую писать текст в файл

188
Яндекс sdk РСЯ banner

Яндекс sdk РСЯ banner

Добрый день, подключил рекламу РСЯ в приложение свое, но обратил внимание, что баннер отображается очень редко, делал все по образцу от яндекса,...

126
Intellij Cannot resolve symbol 'ucp'

Intellij Cannot resolve symbol 'ucp'

Был обычный проект, сделал из-него Maven проектВсе компилится, все работает

156
получение экземпляра класса из объекта

получение экземпляра класса из объекта

Приветjava, есть два класса

167