Я хотел бы написать метод, который проверяет, где аргумент равен нулю, и, если он есть, возвращает новый объект этого типа. это выглядит так:
public static <T> T checkNull(T obj) {
if (null == obj) return someHowCreateTheObjectWithTypeT();
else return obj;
}
После некоторой борьбы и копания я все еще не могу найти способ достичь этого, возможно ли это вообще в Java?
Сначала я подумал об отражении. Но я просто не могу получить экземпляр Class, когда объект имеет значение null, и вы не можете создать Class без имени типа T ...
Обновление:
Я думал о передаче класса в качестве параметра, но это не лучшее решение, как показывают следующие ответы:)
Мое настоящее решение заключается в использовании параметра defaultValue:
public static <T> T checkNull(T obj, T defaultValue) {
if (null == obj) return defaultValue;
return obj;
}
Который быстрее и безопаснее, чем решение для отражения, и тот же многословный;
Но затем я должен систематически указывать DEFAULT_VALUE для всех типов интересов, что не является легкой работой.