2

Eclipse デバッガーから次のエラーが表示されます: ローカル変数を使用できません。可能な限りコードをトリミングしようとしました。問題は非常に単純です。Cluster クラスの変数を使用して、Divise クラスの DivisiveUI UpdateLog() メソッドを使用する必要があります。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);
        }

    }

分割UI:

 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;
}
4

1 に答える 1

8

デバッガーがローカル変数にアクセスできない場合は、バイトコードからローカル変数のデバッグ情報を追加するオプションを使用してコードがコンパイルされていないことを意味します。

クラスのコンパイル方法を確認し、この情報がコンパイルされたクラスに含まれていることを確認してください。javac を使用する場合は、-gすべてのデバッグ情報を表示するオプションを追加します。

于 2013-04-06T13:52:24.987 に答える