Вы должны будете вызывать метод valueOf
каждого из этих классов. Так что, возможно:
for (int i = 0; i < domains.length; i++) {
try {
comparableObjects[i] = (Comparable) domains[i]
.getMethod("valueOf", String.class).invoke(null, stringValues[i]);
} catch (NoSuchMethodException ex) {
comparableObjects[i] = stringValues[i];
}
}
Этот код использует метод valueOf
по отражению. getMethod(..)
принимает имя метода и тип (ы) аргумента, а invoke(..)
принимает null
в качестве первого аргумента, поскольку метод является статическим.
Если есть другие классы, которые вы хотите преобразовать из String, вам придется использовать методы их преобразования.
Но я не знаю, действительно ли вам это нужно и почему. Так как вы знаете все классы и аргументы.