Skip to content

Commit

Permalink
2.2.1 - Fix Listener target resolution for parameterized events
Browse files Browse the repository at this point in the history
  • Loading branch information
ZeroMemes committed Jul 8, 2022
1 parent 53d4d6b commit c23583b
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 2 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
group 'me.zero'
version '2.2.0'
version '2.2.1'

apply plugin: 'java'

Expand Down
3 changes: 2 additions & 1 deletion src/main/java/me/zero/alpine/bus/EventManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import me.zero.alpine.listener.EventSubscriber;
import me.zero.alpine.listener.Listener;
import me.zero.alpine.listener.Subscribe;
import net.jodah.typetools.TypeResolver;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
Expand Down Expand Up @@ -173,7 +174,7 @@ protected static <T> Listener<T> asListener(EventSubscriber subscriber, Field fi
field.setAccessible(accessible);

// Resolve the actual target type from the field type parameter, and update the Listener target
Class<T> target = (Class<T>) ((ParameterizedType) field.getGenericType()).getActualTypeArguments()[0];
Class<T> target = (Class<T>) TypeResolver.resolveRawArgument(field.getGenericType(), Listener.class);
listener.setTarget(target);

return listener;
Expand Down

0 comments on commit c23583b

Please sign in to comment.