表达式的类型必须是数组类型,但它已解析为String1

时间:2015-08-06 10:30:02

标签: java

您好我是java的新手,我想使用构造函数,使用另一个类的参数传递它。

但是eclipse正在给我一个错误 “表达式的类型必须是数组类型,但它已解析为String”。

String sType = type[0]; 
String mName = type[1];

以上

请有人帮我解决下面的问题并指出我的错误吗?

public class M {
    String [] type= new String [2];

public M (String type) {            
            this.Type = Type.split("\\.");
            String sType = type[0]; 
            String mName = type[1];
            System.out.println(sType);
  }
}

4 个答案:

答案 0 :(得分:2)

嗯,这里有两个问题。首先,你有:

this.Type = Type.split("\\.");

...使用Type代替type

接下来,您使用的是type[0],它指的是名为type参数,而不是字段。

可以将其修复为:

public M(String type) {
    this.type = type.split("\\.");
    String sType = this.type[0]; 
    String mName = this.type[1];
    System.out.println(sType);
}

...但我认真考虑将字段名称更改为types而不是type - 或者可能是自定义类,如果这是一个总是需要有两个的数组具有特定含义的元素。

(我也希望你的班级没有真正被称为M ...)

答案 1 :(得分:1)

请不要输入大写字母T表示Type。 属性是type,而不是Type

你错过了这个关键词。

String mName = this.type[0]

答案 2 :(得分:0)

你有

this.Type = Type.split("\\.");

但没有字段名称Type。

答案 3 :(得分:0)

这显然缺乏关注。该代码包含大量不同的变量,称为" Type"添加了小写和大写字母或字母等。type是传递给构造函数的参数,它是String,因此发生错误。这段代码风格很差。您应该使用更多不同的名称,而不是不同版本的"类型"。