需要明确的是,这个问题是严格假设的。就个人而言,我在现实世界中不需要这种行为;我偶然发现了它。
如果我声明一个带有strictfp
修饰符的 Java 类:
public strictfp class PublicStrictfpClass
{
public double f() { return 2d / 3d; }
}
...然后我测试使用Modifier.isStrict(int)
:
public static void main(String[] argArr)
{
if (! Modifier.isStrict(PublicStrictfpClass.class.getModifiers()))
{
throw new IllegalStateException("Unreachable code");
}
}
上面的代码失败:方法main()
throws IllegalStateException
。我尝试了一个有和没有方法的类声明PublicStrictfpClass.f()
——都失败了。
我是不是误会了……?
- 在类声明中使用
strictfp
修饰符? - 方法
Modifier.isStrict(int)
?
我正在使用 OpenJDK 8 的最新补丁从 Linux 运行此代码。
最后,在问这个问题之前,我做了一堆谷歌搜索。关键字strictfp
在野外非常罕见!