为什么我无法从扩展嵌套类访问方法?

问题描述 投票:0回答:1

我正在尝试访问我的类扩展的嵌套类中的方法。 具体来说就是

getSenderSubID()
中的
quickfix.fix42.Message.Header
方法。

public class ExecutionReport extends Message
Message
的构造函数为:

protected Message(int[] fieldOrder) {
        super(fieldOrder);
        header = new Header(this);
        trailer = new Trailer();
        
        getHeader().setField(new BeginString("FIX.4.2"));
            
    }

嵌套的

Header
类是:

public static class Header extends quickfix.Message.Header {

        static final long serialVersionUID = 20050617;

        public Header(Message msg) {
            // JNI compatibility
        }

我想访问的里面的方法是:

    public quickfix.field.SenderSubID getSenderSubID() throws FieldNotFound {
        return get(new quickfix.field.SenderSubID());
    }

对我来说,所有这些看起来我应该能够使用这个方法,但很明显我不能。怎么会这样?

我仔细检查了所有类都在

package quickfix.fix42;
中,并且
ExecutionReport
中没有方法覆盖。

java inheritance inner-classes quickfixj
1个回答
0
投票

(不确定您使用的 FIX 版本;我会说您在本答案中使用的是 FIX44。您可以进行相应调整。)

我认为

getHeader()
返回的是
quickfix.Message.Header
而不是
quickfix.fix44.Message.Header
。只有后者有
getSenderSubID()

尝试将

quickfix.Message.Header
转换为
quickfix.fix44.Message.Header

© www.soinside.com 2019 - 2024. All rights reserved.