java - 泛型和 "where"子句

标签 java generics where

在。 NET,我可以这样做:

public static T[] CreateAndFillArray<T>(int size) where T : new()
{
   T[] array = new T[size];
   for (int i = size - 1; i >= 0; i--)
       array[i] = new T();
   return array;
}

我们必须指定“where T : new()”子句。

如何用 Java 实现?

最佳答案

除非将 T 作为参数传入,否则您将无法在 java 中创建通用“T”类型的数组。

public static <T> T[] createAndFillArray(Class<T> cls, int size) {
  T[] result = (T[]) Array.newInstance(cls, size);
  for (int i=0; i<size; i++) {
    result[i] = cls.newInstance();
  }
  return result;
}

关于java - 泛型和 "where"子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1671079/

相关文章:

c# - 什么是 linq.where 的大 O?

java - 我可以反射性地实例化 java 中的泛型类型吗?

java - 如何使用 JUnit 模拟此 webClient?

c# - 为什么 DynamicObject 类中的方法不是通用的?

java - 抽象递归泛型导致绑定(bind)不匹配

sql - SQL Server View 中的位置和顶部交互

Java EE 容器内部结构

java - SELECT 中的多个值

java - 为什么这个泛型不能识别它的父类(super class)边界(Java)?

MySQL和Hive查询实现