public class CategoryObservationType extends CategoryObservation
{
private String code;
private String name;
private String categories;
private int catlimit = 1;
String[] Categories;
public CategoryObservationType(String name, String code)
{
this.name = name;
this.code = code;
Categories[catlimit] = new Categories(name,code);
catlimit ++;
}
public String getCode()
{
return code;
}
public String getName()
{
return name;
}
public String setName(String name)
{
this.name = name;
return name;
}
public String setCode(String code)
{
this.code = code;
return code;
}
}
我是新手,我不明白为什么我得到输出错误无法找到符号类别它发生在第24行,类别[catlimit] =新类别(名称,代码);
答案 0 :(得分:1)
您已将Categories
定义为字符串数组:
String[] Categories;
如果这是你的意图,你需要将它初始化为String数组。但是,我发现您已完成以下操作:
Categories[/*some index*/] = new Categories(name,code);
对我而言,这表示您需要Category
个对象的数组,大概使用catLimit
作为数组的大小(注意:我是从臀部编码 - 这可能不起作用!):
// Your field:
private Category[] categories = new Category[catLimit];
...
// In your method:
categories[/*some index*/] = new Category(name,code);
如果是这种情况,那么您还需要将Category
定义为对象。这就是说,我看到你的班级CategoryObservationType
:我认为这是Category
对象?如果是这样,我注意到的代码就会改变(再次,从臀部编码):
// Your field:
private CategoryObservationType[] categories = new CategoryObservationType[catLimit];
...
// In your method:
categories[/*some index*/] = new CategoryObservationType(name,code);
您会在此处看到我已使用catLimit
替换了您方法中的/*some index*/
。如果catLimit
是数组的大小,正如我怀疑的那样,那么使用它作为索引将为您提供访问数组空间的例外。如果你来自另一种编程语言,我知道这似乎违反直觉:其他语言允许你使用myArray[sizeOfArray] = elementToAppend
语法来扩展数组。 你不能用Java做到这一点:你需要创建一个新数组,或者更简单地使用LinkedList
作为你的集合类型。您可以使用get(index)
为其编入索引,然后使用add(index)
添加到其中。
希望这有帮助!