创建实例变量不起作用?

时间:2012-10-08 06:20:25

标签: java variables instance

自从我使用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() {}
}

6 个答案:

答案 0 :(得分:2)

您的陈述BB fifo = new BB();应该在

之前

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

答案 1 :(得分:1)

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

我建议你删除例外或将其放在方法的最后。

BTW我建议您使用camelCase作为方法并使用UnsupportedOperationException,因为IllegalStateException表示对象处于一种状态,表示该方法无法使用,即另一个令人困惑的错误。

此外还有一个FIFOLock内置锁,因此我建议您使用new ReentrantLock(true);是一个fifo锁。

答案 2 :(得分:1)

当您在类中声明 1-arg构造函数或任何 n-arg构造函数时,您还应该声明 0-arg构造函数你自己..因为Compiler不会为你做..

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

所以,如果你想使用: - BB obj = new BB(),除了现有的构造函数之外,在你的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 ..因为那将是{{1} }

答案 3 :(得分:0)

添加默认构造函数,如下所示:

public class BB implements DD {
BB()
{
}

       public int Get() {}
}

答案 4 :(得分:0)

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

   public BB() {
    }

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

答案 5 :(得分:-1)

正如你所说,你有public BB (String name) { mt = name}

你应该在你的代码中提到上面的内容......

然后你应该像这样初始化AA类中BB类的实例......

BB b = new BB("Vivek");

with a String as an Argument....

并将您的BB b = new BB("Hello");放在抛出语句....

之前