我想将一些转换成String这样的运算符:
String
int value = 1; int valueToCompare = 3; String operation = "<"; if (value operation valueToCompare) { // some operation }
如何将变量操作转换为运算符?
您可以尝试以下方法:
import java.util.*; interface Operator { boolean compare(int a, int b); } class Launch { public static void main (String[] args) throws java.lang.Exception { Map<String, Operator> opMap = new HashMap<String, Operator>(); opMap.put(">", new Operator() { @Override public boolean compare(int a, int b) { return a > b; } }); opMap.put("<", new Operator() { @Override public boolean compare(int a, int b) { return a < b; } }); opMap.put("==", new Operator() { @Override public boolean compare(int a, int b) { return a == b; } }); String op = ">"; int i = 4, j = 5; boolean test = opMap.get(op).compare(i, j); System.out.printf("test: %b, i: %d, op: %s, j: %d\n", test, i, op, j); //prints: test: false, i: 4, op: >, j: 5 } }