• Java 21 新特性:Unnamed Classes and Instance Main Methods


    Java 21引入了两个语言核心功能:

    • 未命名的Java类你说
    • 新的启动协议:该协议允许更简单地运行Java类,并且无需太多样板

    下面一起来看个例子。通常,我们初学Java的时候,都会写类似下面这样的 Hello World 程序:

    public class HelloWorld {
    
      public static void main(String[] args) {
        System.out.println("Hello, World!");
      }
    
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    对于程序的功能来说,这里有太多的混乱的代码、太多的概念、太多的构造。

    The static modifier is part of Java's class-and-object model. For the novice, static is not just mysterious but harmful: To add more methods or fields that main can call and use the student must either declare them all as static — thereby propagating an idiom which is neither common nor a good habit — or else confront the difference between static and instance members and learn how to instantiate an object.

    • Class声明和强制的public访问修饰符是必须的。当用在外部组件定义良好的接口封装代码单元时,它们很有用。但在这个小例子中,它们毫无意义。
    • String[]参数主要用于将代码与外部组件(在本例中为操作系统的shell,接收命令传入的参数)连接。它在这里很神秘且无用,尤其是它从未被使用过。
    • static修饰符是Java类和对象模型的一部分。对于新手来说,这不仅是神秘的,而且是有害的:要添加更多可以调用和使用的方法或字段,学​​生必须要么将它们全部声明(传播一种既不常见也不是好习惯的用法),或者就要面对是否有static修饰的区别问题,并学习如何实例化对象。

    使用Java 21的JEP 445特性,该例子将简化为:

    class HelloWorld {
    
      void main() {
         System.out.println("Hello, World!");
      }
    
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    如上例子,Java 21增强了启动Java程序的协议,以允许实例使用main方法,且该方法不需要static、不需要public、也不需要任何参数。

    其次,Java 21还引入未命名的类来使声明隐式,像下面这样就可以了:

    void main() {
       System.out.println("Hello, World!");
    }
    • 1
    • 2

    怎么样,是不是这样之后,Java的上手例子也能像python、go等其他高级语言那样简单的呢?你觉得是否有助于初学者上手Java呢?

    如果您学习过程中如遇困难?可以加入我们超高质量的技术交流群,参与交流与讨论,更好的学习与进步!另外,不要走开,关注我!持续更新Java新特性专栏

    欢迎关注我的公众号:程序猿DD。前沿技术早知道,弯道超车有希望!积累超车资本,从关注DD开始!

  • 相关阅读:
    C++超复杂的构造和析构函数执行顺序详解
    一个简单的敏捷开发的例子
    git撤回 不小心 commit 进去的文件
    二氧化钛纳米粒TIO2修饰多肽R8/CTT2/CCK8/GE11/cTAT/CPP/RVG29/SP94(无机纳米粒子偶联多肽)
    多线程和并发问题详解
    数据库监控:关键指标和注意事项
    【172】SpringBoot2的一个利用CountDownLatch和线程池优化查询接口执行效率的例子
    详解 gRPC 客户端长连接机制实现
    计算机毕业论文微信小程序毕业设计开题报告SSM美容预约+后台管理系统|前后分离VUE[包运行成功]
    网络安全——终端安全
  • 原文地址:https://blog.csdn.net/dyc87112/article/details/133468846