Вот пример выражения string
, которое я создаю, которое затем я хочу использовать в состоянии оператора if
.Динамическое If Условие из выражения String
public static String dynamicIf(String a, String b, String c){
String expression = "";
String[] list = {"one", "two", ""};
if(!a.equals(""))
expression += "a.equals(list[0])";
if(!b.equals(""))
{
if(!expression.equals(""))
expression += " && b.equals(list[1])";
else
expression += "b.equals(list[1])";
}
if(!c.equals(""))
{
if(!expression.equals(""))
expression += " && c.equals(list[2])";
else
expression += "c.equals(list[2])";
}
//String[] splitExpression = expression.split(" && ");
return expression;
}
Таким образом, функция выше создает строку, которую я тогда хотел бы использовать в качестве условия if
заявления. В результате этого метода работает с этими параметрами:
dynamicIf("one","two","");
является
a.equals(list[0]) && b.equals(list[1])
Как я могу получить это выражение в виде строки для запуска в состоянии с if
? Надеюсь, вы понимаете. Спасибо.
Вам нужно будет написать переводчика. Чтобы интерпретировать это. Java не имеет 'eval'. –
Что именно делает 'eval'? Я не уверен в этой идее, поэтому не уверен, что писать. – Safinn
В принципе, не пытайтесь делать подобные вещи, если только вы не пишете программу, которая на самом деле генерирует исходный код Java. Вы сделаете лучше, если вы создадите какую-то структуру данных, которая содержит, например, индексы списков и строки, в которые вы хотите сравнить элементы списка. – ajb