Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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_Variables_Instance - Fatal编程技术网

Java 创建实例变量不需要';不行?

Java 创建实例变量不需要';不行?,java,variables,instance,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("Pleas

我已经有一段时间没有使用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() {}
}

您的语句
BB fifo=new BB()应在


抛出新的非法状态异常(“请实现我”)

您的声明
BB fifo=new BB()应在


抛出新的非法状态异常(“请实现我”)

添加默认构造函数,执行以下操作:

public class BB implements DD {
BB()
{
}

       public int Get() {}
}

添加默认构造函数,请执行以下操作:

public class BB implements DD {
BB()
{
}

       public int Get() {}
}

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

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

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


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

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

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

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


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

当您在类中声明一个1-arg构造函数或任何n-arg构造函数时,您还应该自己声明一个0-arg构造函数。。因为
编译器
不会为您执行此操作

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

因此,如果您想使用:-
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
语句。。否则,代码将不会编译。。由于在类中声明1-arg构造函数或任何n-arg构造函数时,这将是
无法访问的代码

,因此您还应该自己声明0-arg构造函数。。因为
编译器
不会为您执行此操作

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

因此,如果您想使用:-
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
语句。。否则,代码将不会编译。。由于这将是
无法访问的代码

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

   public BB() {
    }

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

请在
BB
类中添加以下内容

   public BB() {
    }

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

正如您所说的
public BB(字符串名){mt=name}

您应该在代码中提到上述内容。

然后您应该像下面这样初始化类AA中的类BB的实例:

BB b=新的BB(“Vivek”)

即使用字符串作为参数


并将您的
BB b=新BB(“你好”)
在抛出
语句之前。

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

您应该在代码中提到上述内容。

然后您应该像下面这样初始化类AA中的类BB的实例:

BB b=新的BB(“Vivek”)

即使用字符串作为参数


并将您的
BB b=新BB(“你好”)在抛出语句之前。

我已经有一段时间没有使用JAVA了。现在它已经足够成熟了,我们不需要对此大喊大叫。现在你可以把它叫做“Java”。你在BB和DD中有什么构造函数定义?我没有看到任何实例变量…我不知道为什么我把其中所有的字母都大写了,谢谢你提醒我。有什么帮助吗?在BB中,我有一个公共BB(字符串名){mt=name}mt是一个类型线程。顺便说一句,“我使用JAVA已经有一段时间了。”现在它已经足够成熟了,我们不需要对此大喊大叫。所以现在你可以