Java 21颠覆传统:未命名类与实例Main方法的编码变革

简介: Java 21颠覆传统:未命名类与实例Main方法的编码变革

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

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

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

public class HelloWorld {
  
  public static void main(String[] args) {
    System.out.println("Hello, World!");
  }
}

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

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

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

class HelloWorld {
  
  void main() {
     System.out.println("Hello, World!");
  }
}

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

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

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


相关文章
|
1天前
|
IDE Java 开发工具
基于Java程序设计的实验教学方法优化与实践
基于Java程序设计的实验教学方法优化与实践
7 1
|
1天前
|
Java
Java对象和类研究
Java对象和类研究
6 0
|
1天前
|
XML Java 测试技术
Java异常处理神器:Guava Throwables类概念与实战
【4月更文挑战第29天】在Java开发中,异常处理是保证程序稳定性和可靠性的关键。Google的Guava库提供了一个强大的工具类Throwables,用于简化和增强异常处理。本篇博客将探讨Throwables类的核心功能及其在实战中的应用。
7 2
|
1天前
|
存储 安全 Java
【Java EE】CAS原理和实现以及JUC中常见的类的使用
【Java EE】CAS原理和实现以及JUC中常见的类的使用
|
3天前
|
存储 Java 索引
【JAVA】HashMap的put()方法执行流程
【JAVA】HashMap的put()方法执行流程
|
5天前
|
人工智能 安全 Java
Java8 - LocalDateTime时间日期类使用详解
Java8 - LocalDateTime时间日期类使用详解
|
存储 设计模式 IDE
阿里Java编码手册实战详解-OOP规约
阿里Java编码手册实战详解-OOP规约
104 0
|
存储 安全 Java
阿里Java编码手册实战详解-集合处理篇
阿里Java编码手册实战详解-集合处理篇
101 0
|
设计模式 Java 关系型数据库
阿里Java编码手册实战详解-命名规范篇
阿里Java编码手册实战详解-命名规范篇
854 0
|
3天前
|
设计模式 安全 Java
【JAVA】Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式
【JAVA】Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式