您好我是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); } }
答案 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
,因此发生错误。这段代码风格很差。您应该使用更多不同的名称,而不是不同版本的"类型"。