public void foo()
{
......        m  = new ColorProperty.Maker(PR_BACKGROUND_COLOR) {
            protected Property convertPropertyDatatype(
                    Property p, PropertyList propertyList, FObj fo) throws
PropertyException {
                String nameval = p.getNCname();
                if (nameval != null) {
                    FObj fobj = (fo == null ? propertyList.getFObj() : fo);
                    FOUserAgent ua = (fobj == null ? null : fobj.getUserAgent())
;
                    return ColorProperty.getInstance(ua, nameval);
                }
                return super.convertPropertyDatatype(p, propertyList, fo);
            }
        };        ......
}在一个函数体里重新定义了个方法?还是只是重新定义那个Maker的成员
convertPropertyDatatype()
Maker的类定义中有一个convertPropertyDatatype()方法
Maker是ColorProperty类的一个嵌套定义的类

解决方案 »

  1.   

    那Maker后的PR_BACKGROUND_COLOR是什么?参数?类也有参数吗?
      

  2.   

    如果想用C++实现类似的功能的话,是不是就要重新继承一下这个Maker了呢~
      

  3.   

    重新定义convertPropertyDatatype函数
    C++的话,继承一下ColorProperty.Maker这个类,改写下convertPropertyDatatype()函数
    做一个继承类的指针
      

  4.   

    很显然是重写了convertPropertyDatatype这个方法
      

  5.   

    应该是在Maker类的对象中,重写了convertPropertyDatatype()方法。只在该对象中有效。
      

  6.   

    生成了一个新的匿名类,是ColorProperty中类Maker的子类。