2014-11-10 2 views

ответ

2

Я думаю, вы не можете этого сделать, потому что класс Bag в algs4.jar находится внутри пакета по умолчанию. Перед J2SE 1.4, мы до сих пор не может импортировать классы из пакета по умолчанию, используя синтаксис вроде этого:

import Unfinished; 

Но из J2SE 1.5, который больше не допускается. Поэтому, если мы хотим получить доступ к классу пакетов по умолчанию из упакованного класса, необходимо переместить класс пакета по умолчанию в собственный пакет. Читайте здесь более подробно объяснение:

How to access java-classes in the default-package?

Некоторые опции вы можете выбрать:

  1. Доступ класса с помощью отражения или какой-либо другой косвенный метод. Но это немного сложно, примерно так:

    Класс fooClass = Class.forName ("FooBar"); Метод fooMethod = fooClass.getMethod ("fooMethod", новый класс [] {String.class});

    String fooReturned = fooMethod.invoke (fooClass.newInstance(), новая строка («Я сделал это»));

  2. Если у вас есть исходный код библиотеки jar, вам необходимо поместить его в надлежащий пакет и снова обернуть его в качестве новой библиотеки jar.

+0

@thewizard, спасибо. Этот ответ и другие объясняют, как то, что я пытаюсь сделать, неправильно, но я не вижу объяснения, что делать. Что такое пакет «не по умолчанию», и как я могу импортировать 'algs4.jar' и' stdlib.jar' как пакеты, отличные от стандартного? – gwg

+0

обновите ответ для вас, пакет не по умолчанию означает, что другие пакеты в папке src. Если 2 библиотеки были с открытым исходным кодом, вы можете загрузить источники и настроить новый проект для обоих источников, а затем ссылаться на свой проект на эти два проекта. Надеюсь, это поможет, пожалуйста, отметьте мой ответ, если вы считаете, что это лучший ответ на ваши проблемы. Благодарю. –

+0

@thewizard, спасибо за объяснение. Поскольку я пишу автономные классы для курсовой работы, я решил просто поместить 'WordNet' в пакет по умолчанию. Теперь я могу напрямую ссылаться на «Сумку». – gwg

0

Вам может понадобиться либо полностью определить класс Bag, или импортировать его.

+1

Как в: 'import Bag;'. Он находится в пакете по умолчанию, так что это все, что вам нужно. –

+0

@PaulHicks, 'import Bag;' не работает. Я получаю сообщение: «Импортная сумка не может быть решена». – gwg

Смежные вопросы