我正在尝试制作一个在Java中使用String和double作为参数的函数,如下所示:
public static double calc(String fx, double arg) {
return fx.convertToFunction(arg); // Pseudocode
}
例如,要计算数字的余弦(例如PI),代码将是:
calc("cos", Math.PI);
并且函数calc必须将“ cos”转换为Math.cos()。
至少有可能吗?
Java提供了一种称为Reflection的功能。这提供了按名称访问方法,变量等的方法。这些功能大多数位于java.lang.Class对象上。
代码
public static void main(String[] args) throws Exception {
System.out.println(calc("cos", Math.PI));
System.out.println(calc("sin", Math.PI /2));
}
public static double calc(String fx, double arg) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
return (Double) Math.class.getMethod(fx, double.class).invoke(null, arg);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句