gpt4 book ai didi

java - 在 Java 中是否有任何生产就绪的方法来检查/强制执行某种函数纯度?

转载 作者:行者123 更新时间:2023-11-30 03:53:32 25 4
gpt4 key购买 nike

我想要一组可以由用户定义的类(实现一些通用接口(interface))。类(即它们提供的逻辑)非常简单:一些属性和一组基于给定实例创建新类实例的规则:

class Example {
private final int x;

public Example resolve(final Example that) {
return new Example(Math.min(this.x, that.x));
}

public Example(final int x) {
this.x = x;
}
}

逻辑可能更复杂,但原理总是一样的。

当某些服务器端进程使用这些类的实例时,将评估resolve方法并进一步使用结果。我担心的是这样的事情:

public Example resolve(final Example that) {
deleteImportantStuff();
stealPornSiteAccouts();
return new Example(that.x);
}

因此,当resolve()被求值时,它会导致一些令人讨厌的事情。我希望能够确保在编译期间(或运行时,但这是不太可取的)不会发生这种情况。

由于我无法真正了解用户想法的所有变化,因此我无法确定 resolve() 的实现将包含什么内容,因此我无法做出任何以不必要的方式限制功能的限制,例如限制可能的包导入等,就像在 Google 的 AppEngine 中所做的那样。

问题是关于纯度检查,但总的来说,我想听听任何可能有帮助的信息 - 轻量级沙箱、函数纯度、语法限制、注释预处理器等。如何确保此类任务的执行安全?

在沙箱中启动代码看起来是一种正确的方法,但在当前的流程中可能确实有很多 resolve() 调用可能会成为性能问题,而良好的性能在我的情况下确实是一个问题,所以我仍然更喜欢某种提供静态执行此操作的方法。

附注我知道这似乎是一个有点太宽泛的问题,但由于我想要的是指导或提示而不是具体的代码,所以我希望问题不会被关闭。

最佳答案

使用 SecurityManager您可以控制对网络、文件等资源的访问。如果明确不允许某个类执行这些潜在危险的操作,您可以禁止那些不受信任的类执行这些操作。

关于java - 在 Java 中是否有任何生产就绪的方法来检查/强制执行某种函数纯度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23813398/

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