我从eclipse调试器中收到以下错误:local variable unavailable。 试图尽可能地修剪代码。问题很简单,我必须使用Divise类中的DivisiveUI UpdateLog()方法,使用Cluster类中的变量。 Divise有一个包含所有集群的列表。 Divisive和DivisiveUI互相引用。如何访问变量:来自Divisive类的sumDistance,avgDistance? 试过在Divisive类中编写一个方法,仍然无法访问所需的变量:| 谢谢!
log.append错误裁剪(text +“\ n”);找不到来源。
分裂:
package clusters;
import java.util.LinkedList;
public class Divisive implements Runnable
{
LinkedList<Record> mainTable;
LinkedList<Cluster> clusterList;
int meassureType;
DivisiveUI parent;
int clusterCount;
Divisive(LinkedList<Record> mainTable, DivisiveUI parent)
{
this.parent=parent;
this.mainTable=new LinkedList<Record>(mainTable);
setMeassureType(0);
}
}
DivisiveUI:
package clusters;
@SuppressWarnings("serial")
public class DivisiveUI extends JPanel implements Runnable{
ClusteringSelection parent;
Divisive divisive;
JTextField clusterCount;
JTextArea log;
public void UpdateLog(String text)
{
log.append(text+"\n");
log.setCaretPosition(log.getDocument().getLength());
}
}
集群:
package clusters;
public class Cluster
{
LinkedList<Record> table;
LinkedList<MatrixRow> matrix;
LinkedList<Double> center;
double sumDistance;
double avgDistance;
int meassureType;
}
答案 0 :(得分:7)
如果调试器无法访问局部变量,则意味着代码尚未使用从字节码添加局部变量调试信息的选项进行编译。
检查你是如何编译类的,并确保这些信息在编译的类中。如果使用javac,请将-g
选项添加到ad所有调试信息中。