假设我有一个元素E的数组A,每个数组包含一个整数键和一些对象数据。 我想提取数组A的i元素的键,并比较像
这样的值 A[i].key>somevalue
问题是我不知道执行此比较的正确操作。 在我的程序中,我可以通过键入
来访问元素的键 E.key
因为我的A元素似乎是一个元素E我会认为第一个片段会起作用,但事实并非如此。
元素声明为
public class Element {
public int key;
public Object data;
public Element(int i, Object o){
this.key = i;
this.data = o;
}
}
数组的构造函数 公共类PQHeap实现PQ { //构造 私人PQHeap [] pq;
public PQHeap(int maxElms){
pq = new PQHeap[maxElms];
}
...
某种方法
private void IncreaseKey(Element e){
if (e.key < pq[i].key){
System.out.println("new key is larger than current key");
}
例如,带有if语句的行,错误是“键无法解析或不是字段” 像pq.length这样的操作工作正常,而e.key本身也可以工作
答案 0 :(得分:0)
好吧,数组声明为
PQHeap[] pq;
因此它不包含Element
个实例,但包含PQHeap
个实例。因此pq[i]
的类型为PQHeap
,而PQHeap
没有key
字段,因此编译错误。