gpt4 book ai didi

java - 将字符串操作转换为短整型 (JAVA)

转载 作者:行者123 更新时间:2023-12-02 00:40:23 25 4
gpt4 key购买 nike

如果字符串是:

String common_mpCon = "20+5*Math.ceil(2/7)"; //(equals 200 btw)

我试图让字符串在转换为短路时执行内部的所有操作。是否可以?使用Short.parseShort(common_mpCon) ,我抛出异常,通过谷歌搜索我没有找到有用的答案,所以我最终决定询问 stackoverflow :D

最佳答案

如果您使用的是 Java 6,您可以考虑使用 javax.tools.javacompiler 类。这是一项繁重的工作,您需要对用户在 JVM 实例中执行任意代码的自由度保持非常谨慎。

也就是说,http://www.java2s.com/Code/Java/JDK-6/CompilingfromMemory.htm 有一个很好的例子。 。这不是我的代码,我不想抄袭,所以我将解释该技术并让您引用完整示例的链接。

首先,构建一个包含您要调用的代码的字符串。与实际源代码一样,换行符是可选的。

String common_mpCon = "20+5*Math.ceil(2/7)";
String code;
code = "public class MyShortEvaluator {\n";
code += " public static Short calculate() {\n";
code += " return (" + common_mpCon + ");\n";
code += " }\n";
code += "}\n";

创建一个 JavaFileObject,该对象从其 getCharContent 方法返回 code 的值。将其添加到 JavaFileObject 集合中,将结果传递给 JavaCompiler 实例的 getTask() 方法以获取 CompilationTask,然后调用生成的任务的 call() 方法。

如果一切顺利,您可以使用Class.forName("MyShortEvaluator").getDeclaredMethod来获取对已定义类的新静态方法的引用。

当然,也可以使用其他反射技术。您可以在接口(interface)中定义 Calculate() 方法,让 MyShortEvaluator 实现该接口(interface),然后使用 newInstance 获取对实际实例的引用。对象。

关于java - 将字符串操作转换为短整型 (JAVA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6559885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com