对变量[Something]的赋值无效

时间:2015-06-08 09:30:25

标签: java variable-assignment

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;
    }

3 个答案:

答案 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;
}

这个块有效地为每个局部变量赋值,这会导致编译器向你发出警告。