我正在尝试创建一个框架。
此框架用于在内部解析来自Internet的数据,并将其提供给框架(API)的用户
每个例子:
现在这很棒,因为他们可以访问用户,但我希望使用该框架的人能够自己实现User。
我不想让他们做一堆包装。
使用我的Framework的人应该能够将“BasicUser”更改为用户创建的类(实现“User”)。
(should be able to change "BasicUser"
- >无法更改类本身,而是将为新用户创建的Object类更改为其他“用户”实现
是否可以在不使用反射的情况下执行此操作?
传递给Listener的“User对象”是否也可以使用Generics自动转换为框架用户提供的Class?
答案 0 :(得分:3)
传入该类型的实例,例如
<T> T getResult(T instance) { ... }
Float result = getResult(Float.valueOf(1.0f));
或使用返回类型参数化的泛型类型,例如
<T> T getResult(Class<T> clazz) { ... }
String result = getResult(String.class);
或使用参数化列表
<T> T getResult(List<T> list) { ... }`.
List<Integer> list = new ArrayList<>();
Integer result = getResult(list);