Pie*_*ert 30 java generics methods
你认为有可能创造类似的东西吗?
private ArrayList increaseSizeArray(ArrayList array_test, GenericClass) {
array_test.add(new GenericObject()); // instance of GenericClass
return array_test;
}
Run Code Online (Sandbox Code Playgroud)
Chr*_*ung 61
是的你可以.
private static <T> List<T> pushBack(List<T> list, Class<T> typeKey) throws Exception {
list.add(typeKey.getConstructor().newInstance());
return list;
}
Run Code Online (Sandbox Code Playgroud)
用法示例:
List<String> strings = new ArrayList<String>();
pushBack(strings, String.class);
Run Code Online (Sandbox Code Playgroud)
老问题了,但我想这是在Java8 +中这样做的首选方式
public <T> ArrayList<T> dynamicAdd(ArrayList<T> list, Supplier<T> supplier) {
list.add(supplier.get());
return list;
}
Run Code Online (Sandbox Code Playgroud)
它可以这样使用:
AtomicInteger counter = ...;
ArrayList<Integer> list = ...;
dynamicAdd(list, counter::incrementAndGet);
Run Code Online (Sandbox Code Playgroud)
这将在列表中添加一个数字,并从AtomicInteger的incrementAndGet方法中获取值
也可以使用构造函数作为方法引用,如下所示: MyType::new
| 归档时间: |
|
| 查看次数: |
59670 次 |
| 最近记录: |