【问题标题】:java local variable unavailablejava局部变量不可用
【发布时间】:2013-04-06 12:55:24
【问题描述】:

我从 Eclipse 调试器中收到以下错误:局部变量不可用。 试图尽可能地修剪代码。问题非常简单,我必须使用 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;
}

【问题讨论】:

  • 哪行代码导致错误?你能显示实际的完整错误文本吗?
  • 你没有初始化log变量..!!
  • 我说我剪掉了代码 + 如果它没有被初始化,我不会因为无法访问的变量而收到错误。

标签: java variables scope


【解决方案1】:

如果调试器无法访问局部变量,则表示代码尚未使用从字节码中添加局部变量调试信息的选项进行编译。

检查您是如何编译类的,并确保此信息在已编译的类中。如果使用 javac,则添加 -g 选项以广告所有调试信息。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-02
相关资源
最近更新 更多