Java 创建实例变量不需要';不行?
我已经有一段时间没有使用JAVA了 我试图创建一个实例变量,以便在另一个类中使用方法 但它给了我一条错误消息,说“构造函数BB未定义” 有什么帮助吗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
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已经有一段时间了。”现在它已经足够成熟了,我们不需要对此大喊大叫。所以现在你可以