当前位置: 首页 > 面试题库 >

有与python eval函数等效的Java吗?

萧德馨
2023-03-14
问题内容

有与python eval函数等效的Java吗?

这将是一个接受任意字符串并尝试在当前上下文中执行它的函数。


问题答案:

根据此Java技巧,如果您愿意使用,则可以即时编译Java字符串com.sun.tools.javac.Main.compile(source)

com.sun.tools当然,其中的类不是官方Java API的一部分。

在Java 6中,有一个CompilerAPI,用于提供对编译器的编程访问。请参阅接口JavaCompiler的文档。

eval任何标准API均未提供直接功能,但是存在用于构建自己的工具的工具。如果尝试进行完全通用的评估,则可能会遇到“
JVM内部的JVM”问题,因此最好限制要执行的操作的范围。

另请参见:Java中是否有eval()函数?以获得一些不错的评论和解释。



 类似资料:
  • 问题内容: 在将算法从JavaScript移植到Java时,我遇到了需要替换JavaScript的toPrecision()的问题。问题是我不知道数字的大小是多少,所以我不能使用具有正确格式的简单NumberFormat。 是否有提供类似功能的标准类? 编辑这是我想出的: 原则上,它做对了,但是舍入错误完全毁了它。例如, 返回 编辑2此版本非常适合12个测试用例中的11个… 但是仍然返回而不是 问

  • 问题内容: 就像在Java 8中(某种程度上)等同于Scala的类型一样,是否也等同于Scala的类型? 问题答案: Java 8 没有类型,因此您需要自己创建一个或使用一些第三方库。 您可以使用新类型来构建这样的功能(但请阅读此答案的结尾): 用例示例: 回顾起来,基于基础的解决方案更像是一个学术实例,而不是推荐的方法。一个问题是对“空” 的处理,这与“任一个”的含义相矛盾。 以下代码显示了一个

  • 问题内容: 我有一些需要在Java中转置的Perl代码。在此代码中,我必须处理Perl的。Java中是否有等效功能?Perl代码如下所示: 问题答案: Perl的/ 函数是一种用途广泛的转换实用程序,具有其自己的格式语法(在此使用,它使输入任意长的十六进制字符串作为输入)在Java世界中没有直接等效的语法。但是,翻译… …对于Java,您可以例如使用: 有关更多信息,请阅读Javadocs中的类参

  • 问题内容: 在C#中寻找与此方法相同的方法 问题答案: 在C#中超级简单:

  • 问题内容: 基本上,我希望每10毫秒调用一次函数。 如何在Java中实现? 问题答案: 您可能想看看Timer。

  • 问题内容: 用Java 最接近Objective-C的实现是什么?对我来说,看起来像,但是我对Objective-C还是很陌生。 谢谢 问题答案: 是一个类集群(请参阅《可可基础指南》中的“类集群”部分),这意味着实际的实现对您(API用户)是隐藏的。实际上,Foundation框架将在运行时根据数据量等选择适当的实现。此外,可以将任何一个作为键,而不仅是(当然,键对象的键必须是常量)。 因此,最