我正在尝试创建一个框架。
该框架用于在内部解析来自互联网的数据,并将其提供给框架(API)的用户
例如:
- 框架有一个 BasicUser 类(字符串名称,长创建)
- 此类实现了一个名为“User”的接口(interface),该接口(interface)描述了基本行为。
- 每当这个用户在某处被提及时,我都会调用某种监听器,给出一个“用户”对象
现在这太棒了,因为他们可以访问用户,但我希望使用该框架的人能够自己实现用户。
我不想让他们做一堆包装。
使用我的框架的人应该能够将“BasicUser”更改为用户创建的类(实现“User”)。
( 应该能够更改“BasicUser”
-> 不能更改类本身,而是将为新用户创建的对象的类更改为不同的“用户”实现)
是否可以在不使用反射的情况下做到这一点?
传递给监听器的“用户对象”是否也可以自动转换为框架用户使用泛型提供的类?
最佳答案
传入类型的实例,例如
<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);
关于java - 如何将返回类型作为参数传递(无反射?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36555692/