0

自从我使用 JAVA 以来已经有一段时间了。

我正在尝试创建一个实例变量以便在另一个类中使用方法。

但它给了我一条错误消息,上面写着“构造函数 BB 未定义”

有什么帮助吗?

public class AA implements CC { //this is the class where I am trying to create an instance variable

        public int Get() {
        throw new IllegalStateException("Please implement me.");
        BB fifo = new BB(); // this is where I am declaring.
    }
}

还有 FIFOLock 类的签名。

public class BB implements DD {
       public int Get() {}
}
4

6 回答 6

2

你的陈述BB fifo = new BB();应该在之前

throw new IllegalStateException("Please implement me.");

于 2012-10-08T06:24:11.080 回答
1

我不确定您为什么会收到该错误消息,但问题可能是您正在编写的代码是一个永远无法执行的地方(在您抛出异常之后)

我建议您删除异常或将其放在方法的末尾。

顺便说一句,我建议您使用camelCasefor 方法并使用UnsupportedOperationExceptionasIllegalStateException表示对象处于一种状态,这意味着该方法无法使用,即另一个令人困惑的错误。

还有一个FIFOLock内置的锁,所以我建议你使用它new ReentrantLock(true);是一个 fifo 锁。

于 2012-10-08T06:25:39.473 回答
1

当你在你的类中声明一个1-arg 构造函数或任何n-arg 构造函数时,你也应该自己声明一个0-arg 构造函数。因为Compiler不会为你做这件事。

当您的类中没有声明其他构造函数时,编译器仅添加默认构造函数。

所以,如果你想使用: - ,除了你已经存在的构造函数之外,在你的 BB 类中BB obj = new BB()声明一个公共构造函数: -

public BB() {
}

public BB(String arg) {  // Whatever constructor you have declared
}

或者,如果您无法更改类,请使用 1-arg 构造函数创建实例:-

 public int Get() {
    BB fifo = new BB("rohit"); // this is where I am declaring.
    throw new IllegalStateException("Please implement me.");
 }

注意: - 您应该throw在实例创建行之后有语句。否则,代码不会Compile......因为那将是UnreachableCode

于 2012-10-08T06:25:49.380 回答
0

添加默认构造函数,这样做:

public class BB implements DD {
BB()
{
}

       public int Get() {}
}
于 2012-10-08T06:24:44.297 回答
0

BB请在您的课程中添加以下内容

   public BB() {
    }

我怀疑您在类中使用了参数化构造函数BB,而没有创建默认构造函数/无参数构造函数。如果您的BB类中有默认构造函数,请制作它,public以便其他类也可以访问它。

于 2012-10-08T06:25:59.620 回答
-1

As you said that you have public BB (String name) { mt = name}

You should have mentioned the above in your code.

Then you should initialize the Instance of class BB in class AA like this:

BB b = new BB("Vivek");

ie. with a String as an argument.

And place your BB b = new BB("Hello"); before the throw statement.

于 2012-10-08T06:36:24.350 回答