2

デジタル論理ゲートを表す一連のクラスがあり、再帰的に処理して出力する toString() コマンドを作成したいと考えています。問題は、ゲート、ブール値、または整数を含めることができ、Boolean.toString() または Integer.toString() を呼び出すと、割り当てられた値ではなくオブジェクト ID が出力されることです。これらのオブジェクトで toString() (または同様の) コマンドを一般的に呼び出して、割り当てられた値を出力させる方法はありますか?

以下のコードでは、出力は "AND([I@6ca1c,[Z@1bf216a)" のようになります。

「AND(11,true)」のようにしたい

public static class Gate{
    public Object in1;
}

public static class ANDgate extends Gate{

    public Object in2;

    public ANDgate(Object first,Object second){
        in1 = first; // these can be Integer, Boolean, or another Gate
        in2 = second;
    }
    public String toString(){
        return("AND(" + in1 + "," + in2 + ")");
    }
}

public static class NOTgate extends Gate{

    public NOTgate(Object obj){
        in1 = obj; // this can be Integer, Boolean, or another Gate

    }
    public String toString(){
        return("NOT(" + in1 + ")");
    }
}
4

1 に答える 1

6

あなたの出力は、あなたが言うようにではなく、int[]あなたがboolean[]コンストラクタに渡すことを明確に示しています(などのバイナリ型名の意味についてはを参照してください)。IntegerBooleanClass.getName()[I

予想される場合は、配列を変換する独自の関数を提供し、代わりに、配列のハッシュベースの値を返すStringデフォルトの実装を使用する必要があります。toStirng()

于 2012-09-17T17:04:28.227 に答える