Хм ... "противный" - это способ, которым конструктор обрабатывает параметры. Если вы не можете это изменить, тогда ваш фрагмент кода настолько хорош, насколько может быть.
Вы можете избавиться от цикла for, хотя ...
instanceVariableA = tokens[0];
instanceVariableB = tokens[1];
, а затем ввести константы (для читабельности):
instanceVariableA = tokens[VARIABLE_A_INDEX];
instanceVariableB = tokens[VARIABLE_B_INDEX];
ПРИМЕЧАНИЕ : если бы вы могли изменить синтаксис строковых параметров, вы могли бы ввести простой синтаксический анализатор и, немного подумав, обработать эту вещь немного более элегантным образом:
String inputString = "instanceVariableA=some_stuff|instanceVariableB=some other stuff";
String[] tokens = inputString.split("|");
for (String token : tokens)
{
String[] elements = token.split("=");
String propertyName = tokens[0];
String propertyValue = tokens[1];
invokeSetter(this, propertyName, propertyValue); // TODO write method
}