Итак, я пытаюсь запустить конкретный файл с именем CountdownTree. java, который наследует функции из множества других файлов в пакете comp2402a4.
Это были все начальные файлы, предоставленные моим инструктором, которые я я должен добавить, и не должно быть никаких ошибок при запуске этих файлов. Я скомпилировал его, используя 'javac comp2402a4 / CountdownTree. java', и он без проблем скомпилировался. Но когда я пытаюсь запустить его, используя 'java comp2402a4 / CountdownTree. java', я получаю сообщение об ошибке:
Exception in thread "main" java.lang.IllegalAccessError: failed to access class
comp2402a4.DefaultComparator from class comp2402a4.CountdownTree (comp2402a4.DefaultComparator is in
unnamed module of loader 'app'; comp2402a4.CountdownTree is in unnamed module of loader
com.sun.tools.javac.launcher.Main$MemoryClassLoader @21507a04)
at comp2402a4.CountdownTree.<init>(CountdownTree.java:26)
at comp2402a4.CountdownTree.main(CountdownTree.java:53)
Я абсолютно не знаю, что это вызывает, и я очень расстроен, потому что Мне нужен этот файл для запуска, чтобы я мог начать свой проект. Я попытался поискать в Google, но не мог понять, что не так. Я был бы очень признателен за любую помощь в том, что может быть проблема.
CountdownTree. java:
package comp2402a4;
import java.util.Random;
import java.util.SortedSet;
import java.util.TreeSet;
/**
* An unfinished implementation of an Countdown tree (for exercises)
* @author morin
*
* @param <T>
*/
public class CountdownTree<T> extends
BinarySearchTree<CountdownTree.Node<T>, T> implements SSet<T> {
// countdown delay factor
double d;
public static class Node<T> extends BSTNode<Node<T>,T> {
int timer; // the height of the node
}
public CountdownTree(double d) {
this.d = d;
sampleNode = new Node<T>();
c = new DefaultComparator<T>();
}
public boolean add(T x) {
Node<T> u = new Node<T>();
u.timer = (int)Math.ceil(d);
u.x = x;
if (super.add(u)) {
// add some code here
return true;
}
return false;
}
public void splice(Node<T> u) {
Node<T> w = u.parent;
super.splice(u);
// add some code here (we just removed u from the tree)
}
protected void explode(Node<T> u) {
// Write this code to explode u
// Make sure to update u.parent and/or r (the tree root) as appropriate
}
// Here is some test code you can use
public static void main(String[] args) {
Testum.sortedSetSanityTests(new SortedSSet<Integer>(new CountdownTree<Integer>(1)), 1000);
Testum.sortedSetSanityTests(new SortedSSet<Integer>(new CountdownTree<Integer>(2.5)), 1000);
Testum.sortedSetSanityTests(new SortedSSet<Integer>(new CountdownTree<Integer>(0.5)), 1000);
java.util.List<SortedSet<Integer>> ell = new java.util.ArrayList<SortedSet<Integer>>();
ell.add(new java.util.TreeSet<Integer>());
ell.add(new SortedSSet<Integer>(new CountdownTree<Integer>(1)));
ell.add(new SortedSSet<Integer>(new CountdownTree<Integer>(2.5)));
ell.add(new SortedSSet<Integer>(new CountdownTree<Integer>(0.5)));
Testum.sortedSetSpeedTests(ell, 1000000);
}
}
Вот папка со всеми файлами в пакете, если вы хотите чтобы запустить его:
https://drive.google.com/drive/folders/1Cu0qNud7-1ACqLvyLahKiVVk0aHcLMEr?usp=sharing