Skip to content

Commit 8f51cb3

Browse files
committed
refactor: extract getFirstTypeArgumentFromInterface method
1 parent 90cc2bf commit 8f51cb3

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResourceConfiguration.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ default String getLabelSelector() {
2727
return null;
2828
}
2929

30+
@SuppressWarnings("unchecked")
3031
default Class<R> getResourceClass() {
31-
ParameterizedType type = (ParameterizedType) getClass().getGenericInterfaces()[0];
32-
return (Class<R>) type.getActualTypeArguments()[0];
32+
return (Class<R>) Utils.getFirstTypeArgumentFromInterface(getClass());
3333
}
3434

3535
default Set<String> getNamespaces() {

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Utils.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.javaoperatorsdk.operator.api.config;
22

33
import java.io.IOException;
4+
import java.lang.reflect.ParameterizedType;
45
import java.text.SimpleDateFormat;
56
import java.time.Instant;
67
import java.util.Date;
@@ -67,4 +68,9 @@ public static boolean shouldCheckCRDAndValidateLocalModel() {
6768
public static boolean debugThreadPool() {
6869
return Boolean.getBoolean(System.getProperty(DEBUG_THREAD_POOL_ENV_KEY, "false"));
6970
}
71+
72+
public static Class<?> getFirstTypeArgumentFromInterface(Class<?> clazz) {
73+
ParameterizedType type = (ParameterizedType) clazz.getGenericInterfaces()[0];
74+
return (Class<?>) type.getActualTypeArguments()[0];
75+
}
7076
}

0 commit comments

Comments
 (0)