📜  Java 9-可选的类改进(1)

📅  最后修改于: 2023-12-03 14:42:12.779000             🧑  作者: Mango

Java 9 可选的类改进

Java 9 引入了一种新的特性,即可选的类改进。这个特性可以让开发者在运行时决定是否使用某些类。

什么是可选的类?

可选的类是指,一些 Java SE 平台的核心类,它们被视为可选的,并不是所有的 Java SE 实现都必须实现它们。这些类通常都是一些已经过时或者在特定情况下才需要使用的类。

在 Java 9 中,这些类被移动到了 jdk.unsupported 模块中,这样就可以在运行时决定是否使用它们。

如何使用可选的类?

要在 Java 9 中使用可选的类,首先需要将它们添加到模块路径中。可以通过在命令行中指定 --add-modules jdk.unsupported 来添加它们。例如:

java --add-modules jdk.unsupported <MainClass>

一旦添加成功,就可以在代码中使用可选的类了。例如,如果你需要使用 sun.misc.Unsafe,你可以这样获取它的实例:

public class Main {
    public static void main(String[] args) throws Exception {
        ClassLoader classLoader = Main.class.getClassLoader();
        Class<?> cls = classLoader.loadClass("sun.misc.Unsafe");
        Field f = cls.getDeclaredField("theUnsafe");
        f.setAccessible(true);
        Object theUnsafe = f.get(null);

        System.out.println(theUnsafe);
    }
}

注意,这个例子中的代码使用了反射机制来获取 sun.misc.Unsafe 的实例。这是因为 sun.misc.Unsafe 并不在 JDK 的标准 API 中,不能直接通过 import 来使用。

可选的类的注意事项

尽管可选的类可以在 Java 9 中使用,但是一些可选的类并不是为了在应用程序中使用而设计的。它们通常都是一些在核心 Java SE 平台上使用的类,可能存在一些不稳定性或者接口变更的风险。

因此,建议开发者在使用可选的类时要非常小心。要确保你对可选的类有足够的了解,并且知道如果使用不当会带来什么风险。

此外,根据官方文档,可选的类不会被长期支持。这就意味着它们随时都可能被移除,或者不再被支持。因此,如果你的应用程序需要依赖于可选的类,建议你要有一个备份计划。

总结

Java 9 的可选的类改进是一个强大的特性,可以让开发者在运行时灵活决定是否使用某些类。然而,这个特性并不是为了在应用程序中使用而设计的,因此建议开发者在使用可选的类时要非常小心,确保自己知道存在的风险,并且有备份计划。