UT7 Ответов: 2

Как импортировать класс из одного пакета в java


Привет всем, я хочу импортировать класс в свой основной, оба они находятся в одном пакете.Имя пакета-Concurrency, А класс, который я хочу импортировать, - ThreadColor. Я импортировал его в свой основной с помощью
import static ThreadColor.ANSI_PURPLE;
и я получаю эту ошибку, когда компилирую код -
java.lang.ExceptionInInitializerError
. Когда я навожу курсор на
import static ThreadColor.ANSI_PURPLE; 
он показывает - статический импорт только из классов и интерфейса, не может найти символ.
Я хочу использовать цветовые константы, которые находятся в классе ThreadColor в моем основном (вот почему я пытаюсь импортировать класс ThreadColor). Main и ThreadColor находятся в одном пакете (параллелизм). Что я могу сделать? Спасибо за любую помощь.

Класс ThreadColor
public class ThreadColor {
    public static final String ANSI_RESET = "\u001B[0m";
    public static final String ANSI_BLACK = "\u001B[30m";
    public static final String ANSI_RED = "\u001B[31m";
    public static final String ANSI_GREEN = "\u001B[32m";
    public static final String ANSI_BLUE = "\u001B[34m";
    public static final String ANSI_PURPLE = "\u001B[35m";
    public static final String ANSI_CYAN = "\u001B[36m";
}


Что я уже пробовал:

import static ThreadColor.ANSI_PURPLE;
import static ThreadColor.ANSI_GREEN;

2 Ответов

Рейтинг:
2

Mohibur Rashid

Даже если вы находитесь в одном классе; вам все равно нужно импортировать статические файлы с абсолютным путем к пакету.

пример:

package a.b.c;
import static a.b.c.StaticStrings.ONE;
public class Main {
  public static void main() {
    System.out.println(ONE);
  }
}


package a.b.c;
public class StaticStrings {
  public static final ONE="The one";
}



если вы новичок, который все еще учится и не задекларировал никакой пакет
затем объявите пакет и действуйте следующим образом:
1. create a directory name ansicolor
2. move both of the files to ansicolor directory
3. In both file declare package as 
package ansicolor;

4. from the parent of ansicolor directory run the following command
javac ansicolor/Main.java


Рейтинг:
1

UT7

@Mohibur Rahid, большое спасибо, параллелизм был названием проекта, а не именем пакета, мне просто нужно было создать пакет.


Richard Deeming

Если вы хотите ответить на решение, нажмите кнопку "есть вопрос или комментарий?" нажмите кнопку под этим решением и оставьте комментарий. Не опубликуйте свой комментарий как новое "решение".

UT7

хорошо, отметил с благодарностью.