Note that there are some explanatory texts on larger screens.

plurals
  1. POExecuting an overriden method, triggers the un-overridden one
    primarykey
    data
    text
    <p>With the change to <code>StreamEventTransformer</code>, I have to create a wrapper class that behave like <code>StreamEventTransformer</code>, so here's the code:</p> <pre class="lang-dart prettyprint-override"><code>class Transformer implements EventSink, StreamTransformer { EventSink rootSink; Transformer(); Transformer._useSink(this.rootSink); void handleData(event, EventSink sink) { print('inside handleData'); sink.add(event); } void handleError(error, StackTrace stackTrace, EventSink sink) =&gt; sink.addError(error, stackTrace); void add(event) { print('inside add'); handleData(event, rootSink); } void addError(error, [StackTrace stackTrace]) =&gt; handleError(error, stackTrace, rootSink); void close() =&gt; rootSink.close(); Stream bind(Stream source) =&gt; new Stream.eventTransformed(source, (EventSink sink) { EventSink eventSink = new Transformer._useSink(sink); return eventSink; }); } </code></pre> <p>with this class, I just have to extends from <code>Transformer</code> to adapt with the change.</p> <p>But when I extends it:</p> <pre class="lang-dart prettyprint-override"><code>class PlusOneTransformer extends Transformer { void handleData(data, sink) { sink.add(data + 1); } } </code></pre> <p>and test it:</p> <pre class="lang-dart prettyprint-override"><code>void main() { StreamController controller = new StreamController(); Stream stream = controller.stream.transform(new PlusOneTransformer()); stream.listen(print); controller.add(10); } </code></pre> <p>I'm expecting the output is:</p> <pre><code>inside add 11 </code></pre> <p>but instead:</p> <pre><code>inside add inside handleData 10 </code></pre> <p>So it's not running the overridden <code>handleData</code>, it's running the old one. From debugger I can see the executed class is <code>Transformer</code> not <code>PlusOneTransformer</code> while I'm using <code>PlusOneTransformer</code> to transform the stream.</p> <p>Am I missing something?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload