this.name = name;
this.bind = bind;
this.category = category;
它说
对变量的赋值(3中的一个)无效。
我不知道为什么会出现这种错误,请帮忙。我正在使用Eclipse。
完整代码如下:
public class Module {
private String name;
private int bind;
private Category category;
public Module(String name,int bind,Category category) {
this.name = name;
this.bind = bind;
this.category = category;
}
答案 0 :(得分:7)
public Module(String name,int bind,Category category) {
}{
还有一对额外的大括号,所以你的代码几乎不在构造函数中。
您的代码将作为"instance initialization block"在 构造函数之前运行 ,因此,这些命名是指您的类的实例,而不是构造函数参数
答案 1 :(得分:1)
这是你的问题,额外的大括号。
public Module(String name,int bind,Category category) {
}{
this.name = name;
this.bind = bind;
this.category = category;
}
尝试格式化代码并看到了。
我猜你现在知道出了什么问题?
应该是:
public Module(String name,int bind,Category category)
{
this.name = name;
this.bind = bind;
this.category = category;
}
答案 2 :(得分:0)
只是为了完成给出的答案。
您拥有的代码完全有效。实际上,您创建了一个不分配任何变量的构造函数:
public Module(String name,int bind,Category category) {
}
以下,您创建了一个initializer code block,由每个构造函数调用:
{
this.name = name;
this.bind = bind;
this.category = category;
}
这个块有效地为每个局部变量赋值,这会导致编译器向你发出警告。