Flutter: Stream<Null> is allowed?

4.3k Views Asked by At

Sometimes, when I´m watching some projects that work with streams, I see something like:

final controller = StreamController<Null>();

and then:

controller.sink.add(null);

So, is allowed to pass null in streams? Why?

2

There are 2 best solutions below

0
On BEST ANSWER

Null as generic type argument was used before void was supported and means in this case that only the occurence of the even is meaningful, but the event value is not.

With Null the value null is the only valid event value. With void a callback function can be passed that does not take any parameter.

2
On

That's a hack around the fact that sinks require an argument.

Some peoples use streams as a flux of events instead of a value changing over time, but the class isn't designed with this in mind. They typically try to represent the following method as a stream:

void onClick();