public EventBus emit(EventObject event, Object... args) {
        return _emitWithOnceBus(eventContext(event, args));
    }
public EventBus emit ( EventObject event , Object ... args ) { return _emitWithOnceBus ( eventContext ( event , args ) ) ; }
Emit an event object with parameters.

This will invoke all {@link SimpleEventListener} bound to the event object
class given the listeners has the matching argument list.

If there is no parameter passed in, i.e. `args.length == 0`, then it will
also invoke all the {@link ActEventListener} bound to the event class.

For example, suppose we have the following Event defined:

```java
public class UserActivityEvent extends ActEvent<User> {
public UserActivityEvent(User user) {super(user);}
}
```

And we have the following event handler defined:

```java
{@literal @}OnEvent
public void logUserLogin(UserActivityEvent event, long timestamp) {...}

{@literal @}OnEvent
public void checkDuplicateLoginAttempts(UserActivityEvent, Object... args) {...}

{@literal @}OnEvent
public void foo(UserActivityEvent event) {...}
```

The following code will invoke `logUserLogin` and `checkDuplicateLoginAttempts` methods:

```java
User user = ...;
eventBus.emit(new UserActivityEvent(user), System.currentTimeMills());
```

The `foo(UserActivityEvent)` will not invoked because:

* The parameter list `(UserActivityEvent, long)` does not match the declared
argument list `(UserActivityEvent)`. Here the `String` in the parameter
list is taken out because it is used to indicate the event, instead of being
passing through to the event handler method.
* The method `checkDuplicateLoginAttempts(UserActivityEvent, Object ...)` will
be invoked because it declares a varargs typed arguments, meaning it matches
any parameters passed in.

@param event
the target event
@param args
the arguments passed in
@see SimpleEventListener