1
wolfie 2021-10-28 15:25:20 +08:00
Java 不支持多继承
B 可以为 Interface |
2
77yf77yf77yf OP @wolfie 没说清楚不好意思,A 是一个抽象类,B 是一个接口,这样写上去 idea 会报错
|
3
hingbong 2021-10-28 15:53:32 +08:00
<T extends Object & Serializable> void a(Class<T> t) {}
|
5
wolfie 2021-10-28 16:01:17 +08:00
|
6
77yf77yf77yf OP @Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD}) public @interface CacheKey { Class<? extends AbstractStdCacheNaming & ICacheKeyNamingStrategy> keyGen() default EntityBasedKeyNamingStrategy.class; ... } public abstract class AbstractStdCacheNaming {...} public interface ICacheKeyNamingStrategy {...} Class<? extends AbstractStdCacheNaming & ICacheKeyNamingStrategy> keyGen() default EntityBasedKeyNamingStrategy.class; 这一句就报错了 @hingbong |
7
hingbong 2021-10-28 16:32:46 +08:00 1
注解上不行
@interface members may not have type parameters 非注解可以 public interface CacheKey { <T extends Object & Comparable<? super T>> Class<T> keyGen(); } |
8
hingbong 2021-10-28 16:33:20 +08:00
|
9
77yf77yf77yf OP @hingbong 那对于注解有什么替代方案吗,不然只能用反射检查?
|
10
hingbong 2021-10-28 17:03:57 +08:00
我是写 kotlin 的
试了一下 kotlin 可以,但是那个注解到 Java 下又无法使用,只能在 kotlin 里用,Java 里我就不清楚了 |
11
77yf77yf77yf OP @hingbong 好的,谢谢了
|