0

私はContentStreamというクラスを持っています...問題は、内部クラスAddRectancleがクラスGraphicBeginnのゲッターの情報取得することを想定していることです...ゲッターがパブリックであるため、クラスContentStreamは少なくともゲッ​​ターに到達できると思いました.. . 方法を教えてください

public class ContentStreamExt extends ContentStreamProcessor

{

private Matrix  graphicalMatrix;

public ContentStreamProcessorExt(ExtListener extListener)
{
    super(extListener);
}

private void enhanceAdditional()
{
    GraphicBeginn beginnGraphic = new GraphicBeginn();

    super.register("a", beginnGraphic);
    super.register("b", new AddRectangle(beginnGraphic));
}

private static class AddRectangle(GrapicBeginn beginn)
{
    // should get the info of uUx and uUy 
}

private static class GraphicBeginn implements ContentOperator
{
    private float   uUx;
    private float   uUy;

    public float getuUx()
    {
        return this.uUx;
    }

    public float getuUy()
    {
        return this.uUy;
    }
..... // the input for uUx and uuy will be created in a method 
}
4

2 に答える 2

1

私があなたの質問を正しく理解していれば、追加の長方形クラスには、パブリックゲッターを呼び出すことができるグラフィック開始のインスタンスを渡す必要があります。この配線は、コンテンツ ストリーム クラスによって実行できます。

ちなみに、以下は構文的に無効です

private static class AddRectangle(GrapicBeginn beginn)
于 2013-01-17T18:16:45.387 に答える
1

あなたが与えたコードには多くの問題があり、別の投稿者が指摘したように正しくコンパイルされません。また、「AddRectange」というクラスを宣言しながら、メソッド シグネチャを提供しているようにも見えます。これはクラスですか、それともメソッドですか?どちらかを決定する必要があります。両方であってはなりません。これは、一般的な意味であなたがやろうとしていることを示していると思う例です:

public class SampleClass {

public SampleClass() {
}

private void sampleClassMethod() {
    A a = new A();
    a.acceptB(new B());
}

private class A {
    public void acceptB(B bObject) {
        System.out.println(bObject.memberVar1);
    }

}

private class B {
    private int memberVar1 = 5;
}

}
于 2013-01-17T18:40:18.163 に答える