2011-11-16 118 views
1

如何解决在groovy对象上调用的setProperty之间的名称冲突(如果groovy对象继承自另一个也具有setProperty方法的类) 我在尝试下面的代码时遇到错误做下面的,发生在大胆的误差XmlFilterImpl也有类似的setProperty方法Groovy对象集属性名称冲突

def transitFileProcessorService 
def BermudaOutputTransformFilter filter 

public void transformBermudaOutput(File bermudaOutputFile) 
{ 
    SAXParserFactory spf = SAXParserFactory.newInstance() 
    SAXParser parser = spf.newSAXParser() 
    XMLReader reader = parser.getXMLReader() 
    BermudaOutputTransformFilter filter = new BermudaOutputTransformFilter() 
    filter.setParent(reader) 
    **filter.transitFileProcessorService = transitFileProcessorService** 
} 


class BermudaOutputTransformFilter extends XMLFilterImpl{ 
    def relationshipId 
    TransitFileProcessorService transitFileProcessorService 
} 

堆栈跟踪: org.xml.sax.SAXNotRecognizedException:房产“transitFileProcessorService”不被认可。 在com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.getProperty(AbstractSAXParser.java:2060)

回答

1

你能尝试直接访问与

[email protected] = transitFileProcessorService 
+0

这句法也适用于区分财产从地图内的条目映射地图上的字段。我必须使用添加公有字段的HashMap的子类,所以'obj.id'确实调用了'obj.get('id')','obj。@ id'获得了字段的值。 – jgibson