Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java软件包赢得';不编译_Java_Collections_Compiler Errors_Package - Fatal编程技术网

Java软件包赢得';不编译

Java软件包赢得';不编译,java,collections,compiler-errors,package,Java,Collections,Compiler Errors,Package,我认为我对如何设置Java包的理解可能遗漏了一些东西,因为我无法编译包。我有3个班级档案。我的目录如下:…Documents\jsjf,其中包含:ArrayStack.java和StackADT.java。在jsjf目录中,我还有一个文件夹“EmptyCollectionException”,其中包含EmptyCollectionException.java。我可以编译EmptyCollectionException.java和StackADT.java,但当我尝试编译ArrayStack.ja

我认为我对如何设置Java包的理解可能遗漏了一些东西,因为我无法编译包。我有3个班级档案。我的目录如下:…Documents\jsjf,其中包含:ArrayStack.java和StackADT.java。在jsjf目录中,我还有一个文件夹“EmptyCollectionException”,其中包含EmptyCollectionException.java。我可以编译EmptyCollectionException.java和StackADT.java,但当我尝试编译ArrayStack.java时,会收到以下错误消息(请参阅链接):

下面是我的每个文件代码的每个部分的顶部。有人知道这里有什么问题吗。为什么ArrayStack无法导入包

对于ArrayStack.java

package jsjf;



import jsjf.EmptyCollectionException;
import java.util.Arrays;

public class ArrayStack<T> implements StackADT<T>
{
   private final int DEFAULT_CAPACITY = 100;
   private int top;
   private T[] stack;



   //-----------------------------------------------------------------
   //  Creates an empty stack using the specified capacity.
   // Note top is now initialized at -1 so that when first
   // element is added an top is decremented, top will equal 0
   // corresponding to the array index of the first element.
   //-----------------------------------------------------------------
   public ArrayStack(int initialCapacity)
   {
      top = -1;
      stack = (T[]) (new Object[initialCapacity]);
   }

   //-----------------------------------------------------------------
   //  Creates an empty stack using the default capacity.
   //-----------------------------------------------------------------
   public ArrayStack()
   {
      this(DEFAULT_CAPACITY);
   }


//Rest of code.......
对于StackADT:

package jsjf;


public interface StackADT<T>
{
    /**  
     * Adds the specified element to the top of this stack. 
     * @param element element to be pushed onto the stack
     */

    //Rest of Code
包jsjf;
公共接口StackADT
{
/**  
*将指定的元素添加到此堆栈的顶部。
*@param-element要推送到堆栈上的元素
*/
//代码的其余部分

您的代码是说您希望
EmptyCollectionException
在包
jsjf
中,但您说类存在于子文件夹中,子文件夹在包层次结构中更深层(与Java命名约定相反,在Java命名约定中,包名通常不采用驼峰式大小写)

你的
EmptyCollectionException
类代码说它在
jsjf.exceptions
包中,意思是(a)它应该在
jsjf
文件夹下的
exceptions
文件夹中,你导入的
EmptyCollectionException
应该是
import jsjf.exceptions.EmptyCollectionException


编译时,您还需要位于合理的位置,例如,您的文档文件夹,因为包将位于“下面”你编译的地方。就个人而言,我会把它放在一个更合理的文件夹位置,最好没有空格,不在Windows文档文件夹下。

你的代码是说你希望
EmptyCollectionException
在包
jsjf
中,但你说类存在于一个子文件夹中,这将是反编译的包层次结构中的eper(与Java命名约定相反,在Java命名约定中,包名通常不采用驼峰式大小写)

你的
EmptyCollectionException
类代码说它在
jsjf.exceptions
包中,意思是(a)它应该在
jsjf
文件夹下的
exceptions
文件夹中,你导入的
EmptyCollectionException
应该是
import jsjf.exceptions.EmptyCollectionException


编译时,您还需要位于合理的位置,例如,您的文档文件夹,因为包将位于“下面”你编译的地方。就个人而言,我会把它放在一个更合理的文件夹位置,最好没有空格,不在Windows文档文件夹下。

你的代码是说你希望
EmptyCollectionException
在包
jsjf
中,但你说类存在于一个子文件夹中,这将是反编译的包层次结构中的eper(与Java命名约定相反,在Java命名约定中,包名通常不采用驼峰式大小写)

你的
EmptyCollectionException
类代码说它在
jsjf.exceptions
包中,意思是(a)它应该在
jsjf
文件夹下的
exceptions
文件夹中,你导入的
EmptyCollectionException
应该是
import jsjf.exceptions.EmptyCollectionException


编译时,您还需要位于合理的位置,例如,您的文档文件夹,因为包将位于“下面”你编译的地方。就个人而言,我会把它放在一个更合理的文件夹位置,最好没有空格,不在Windows文档文件夹下。

你的代码是说你希望
EmptyCollectionException
在包
jsjf
中,但你说类存在于一个子文件夹中,这将是反编译的包层次结构中的eper(与Java命名约定相反,在Java命名约定中,包名通常不采用驼峰式大小写)

你的
EmptyCollectionException
类代码说它在
jsjf.exceptions
包中,意思是(a)它应该在
jsjf
文件夹下的
exceptions
文件夹中,你导入的
EmptyCollectionException
应该是
import jsjf.exceptions.EmptyCollectionException


编译时,您还需要位于合理的位置,例如,您的文档文件夹,因为包将位于“下面”你编译的地方。就个人而言,我会把它放在一个更合理的文件夹位置,最好是没有空格,不在Windows文档文件夹下的某个地方。

首先,包名不应该以大写开头。这会帮助你看到
jsjf.EmptyCollectionException
不指向ur层次结构,但它是一个包。因此,根据Java命名约定重命名包后,正确的导入应该是:

import jsjf.emptyCollecionException.EmptyCollectionException
在exception类中,使用另一个包名(
exceptions
)。包名应与父目录的名称匹配。因此,我将包含
EmptyCollectionException
的目录重命名为
exception
,并在
ArrayStack
中修复导入


最后,我强烈建议您在手动编译某些类以了解其工作原理时使用IDE。IDE将帮助您进行导入、编译和许多其他工作

首先,包名不应以大写开头。它将帮助您了解
jsjf.EmptyCollectionException
不指向层次结构中的类,而是指向包。因此,根据Java命名约定重命名包后,正确的导入应该是:

import jsjf.emptyCollecionException.EmptyCollectionException
在异常类中,使用另一个包名(