Я хочу создать параметризованным класс в Java, какJava. Может ли массив быть общим параметром?
class MyClass<T>
Первый вопрос: Может ли T быть типа Byte []?
Второй вопрос: Если да, то как знать, что я знаю, что это массив типа Byte? Обычно я получаю класс, а затем проверяю тип класса.
Class typeT = (Class<T>)((ParameterizedType)this.getClass().getGenericSuperclass()).getActualTypeArguments()[0];
anInstance.getClass().equals(typeT)
Но как это работает, если это массив?
Спасибо заранее
Altober
Он должен работать так, как ожидалось, поскольку массивы - это просто объекты с синтаксическим сахаром в Java (afaik). –
Хорошо, спасибо большое и второй вопрос? – Altober
вы можете попробовать первое, что вам нужно. Во-вторых, это скорее должно быть передано с помощью общих методов получения и установки. Если вам нужно проверить тип вашего массива, потому что вы храните их в списке объектов, например, у вас скорее есть недостатки дизайна. – SomeJavaGuy