![](/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.