![](/img/trans.png)
[英]How to find all (child) sub-interfaces of a particular interface in Java?
[英]How to find all sub classes of implemented interface in java?
如果接口用作 DynamoDBTypeConverter 的类型参数(例如 DynamoDBTypeConverter ),如何使用实现的接口获取子类对象。
public enum state implements EnumInterface{
CREATED("0");
}
public enum color implements EnumInterface{
GREEN("0");
}
public interface EnumInterface{
void getStatus();
}
public class DynamoDbEnumConverter implements DynamoDBTypeConvereter<String,EnumInterface>{
public EnumInterface unconvert(String value){
// find Object run time, EnumInterface represent color or stat
}
}
在 unconvert 方法中获取 Enum 接口是代表颜色还是状态。
查看此页面: 什么是 Reified 泛型? 它们如何解决类型擦除问题,为什么不进行重大更改就不能添加它们?
泛型在 Java 中被删除。
要让代码正常工作而无需修改的唯一方法是为每个EnumInterface
提供一个DynamoDbEnumConverter
实例:
class DynamoDbEnumConverter<T extends Enum<T> & EnumInterface> implements DynamoDBTypeConvereter<String, T> {
private Class<T> enumType;
public DynamoDbEnumConverter(Class<T> enumType) {
this.enumType = enumType;
}
public EnumInterface unconvert(String value) {
return Enum.valueOf(enumType, value);
}
}
进而:
DynamoDbEnumConverter<Color> colorConverter = new DynamoDbEnumConverter<>(Color.class);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.