java - 检查一个对象类是否是另一个类的子类,但使用泛型
问题描述
Stack Overflow 上有很多类似的问题,但我没有发现任何与泛型有关的问题
abstract class A<T> {
public abstract T getT();
public void someMethod(Object value){
if(A.class.isAssignableFrom(value.getClass())
// either B or C work, as expected
if(A<Long>.isAssignableFrom(value.getClass()) // does not compile
// this should allow classes like B only
}
}
class B extends A<Long>{
long id;
@Override
public Long getT(){return id;}
}
class C extends A<Integer>{
int id;
@Override
public Integer getT(){return id;}
}
我需要的是一种在使用某种方法时区分B和C的方法,如第二个if所示
解决方案
推荐阅读
- javascript - 使用谓词查找数组中的所有元素/索引 - Typescript
- python - GEKKO bspline 用于两相区域中的 Coolprop 数据的问题
- apache-kafka - Kafka Stream - 每天早上回收状态
- javascript - 如何从其他页面从 google 帐户退出?
- azure - Azure Cloud Shell 蓝色和空白
- ios - 当 UITextView 在 UIScrollView 内时,如何使整个页面可滚动?
- machine-learning - 拆分前与分类器无关的特征选择?
- amazon-web-services - 在此上下文中不允许 E0000 映射值
- reactjs - MapContainer,TileLayer,Marker,Popup .. React Leaflet
- amazon-s3 - 没有模式注册表的 Kafka-connect