• مهما طال الليل@lemm.ee
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    2 hours ago

    Main method is not public static

    It must be somewhere under the hood. Otherwise, it wont be callable and it would require an instance of an object to call. Unless the object here is the Java environment?

    No String[] args

    They are just optional I’m sure, like C and C++. You still need them to read command line arguments.

    All in all, these syntax improvements are welcome. I already moved on to Kotlin for Android development though.

    • JackbyDev@programming.dev
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      1 hour ago

      Main method is not public static

      It must be somewhere under the hood. Otherwise, it wont be callable and it would require an instance of an object to call. Unless the object here is the Java environment?

      No. From JEP-445:

      If an unnamed class has an instance main method rather than a static main method then launching it is equivalent to the following, which employs the existing anonymous class declaration construct:

      new Object() {
          // the unnamed class's body
      }.main();
      

      No String[] args

      They are just optional I’m sure, like C and C++. You still need them to read command line arguments.

      Without the preview feature enabled, it is not an optional part of the method signature. It specifically looks for a main(String[]) signature.

      • مهما طال الليل@lemm.ee
        link
        fedilink
        arrow-up
        2
        arrow-down
        1
        ·
        45 minutes ago

        I am not in the mood to read a technical document, but I don’t think the resulting binary/byte code should be different between the two “hello world” programs. But then again, why not?

        Without the preview feature enabled, it is not an optional part of the method signature. It specifically looks for a main(String[]) signature.

        Ah ha! So that’s what’s going on here. They almost got it right. They had the potential to make a lot of the boilerplate optional or implicit under relevant circumstances, but instead the language has two explicit switchable modes.

        Can I write a Java application in “preview feature”?