Scala中没有strictfp - 解决方法?

我在网上搜索了如何在Scala中强制执行
srictfp
但却找不到任何暗示。有些人抱怨它,但找不到真正的解决方案。有一个关于它的bugtracker条目,差不多两年了。因为它似乎没有优雅的解决方案,我正在寻找解决方法。 我目前的想法是以某种方式在生成的字节码中设置适当的方法标志
ACC_STRICT
,但我不知道这样做的最佳解决方案是什么。在十六进制编辑器中出现Scala编译器插件或者只是黑客标记。也许有人面临同样的挑战,可以告诉我他或她的解决方案?     
已邀请:
您可以在构建过程中添加一个后处理器,它将
strictfp
修饰符添加到生成的类中(即,如您所说设置
ACC_STRICT
标志)。 例如,您可以使用Javassist实现这样的后处理器。这看起来像这样:
CtClass clazz = ClassPool.getDefault().makeClass(
                    new FileInputStream("old/HelloWorld.class"));

CtMethod method = clazz.getDeclaredMethod("testMethod");

method.setModifiers(method.getModifiers() | Modifier.STRICT);

clazz.detach();
clazz.toBytecode(new DataOutputStream(new FileOutputStream(
    "new/HelloWorld.class")));
然后,您必须找到一种方法来配置需要以这种方式修改的类/方法。     
Scala现在有一个
strictfp
注释:
@strictfp
def f() = …
    

要回复问题请先登录注册