Miksei Javassa ole defineä?

miksiiiiiiiiiiiiiiiiiii

Javasta kun puuttuu precompiler kokonaan niin miksei definen ja typedefin tilalle ole rakennettu mitään? Jos esimerkiksi pitää tulostaa paljon tekstiä niin
#define NEWLINE \n
lähdekoodin alussa olisi varsin kiva juttu! Muuten joutuu kutsumaan System.out.println aika moneen kertaan.

14

2811

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • limanuljaskalle

      Hohhoijaati. älä kuse ohjelmakoodeeille.
      kakissa on rajoteensa ja Tietyt tutvallisuus jutut.

    • koetapas esim. google hakua "c preprocessor hell" ja nauti!
      Sen jälkeen ehkä ymmärrät, miksi näitä ei otettu javaan mukaan..

      • Anonyymi

        Ei liity mitenkään avaukseen.


      • Anonyymi kirjoitti:

        Ei liity mitenkään avaukseen.

        Liittyy hyvinkin keskeisesti


      • Anonyymi
        code_red kirjoitti:

        Liittyy hyvinkin keskeisesti

        Aivan yhtä paljon kun rintaliiviesi koko.


      • Anonyymi kirjoitti:

        Aivan yhtä paljon kun rintaliiviesi koko.

        Vau. Olet todella vitsikäs!


    • Anonyymi

      Copypastaamaninen on hyvin yksinkertaista.

    • Anonyymi

      Mielestäni \n on nopeampi kirjoittaa kuin huutaa NEWLINE.

      System.out.println:n saa taas nopeasti kirjoittamalla sout ja painamalla tabulaattoria.

      • Anonyymi

        En tiedä miten on nykyisin mutta joskus ennen \n (newline) ei toiminut Windowsissa jossa sen pitää olla \r (return) ja tuo ei taas toimi Linuxissa ja Macissa. Toisaalta nuo makrot luovat enemmän ongelmia kuin ratkovat niitä. Olen joskus niitä käyttänyt paljonkin C kielen kanssa ja lopputulema on se että koodi ei ole sellaisenaan uudelleenkäytettävissä muissa projekteissa. Makroja ei pitäisi käyttää siitä syystä ollenkaan vaan käyttää standardoitua kieltä aina ja poikkeuksetta. Itseasiassa jopa typedef on uskomattoman typerä idea juuri siksi että koodia ei voi sellaisenaan uudelleenkäyttää. Ainoan poikkeuksen luo tuollainen NEWLINE makro koska se käsittelee tulostettavaa tekstiä jota ei ole tarkoitus käyttää missään muualla uudestaan. Mutta ongelma on ratkaistavissa yhden ylimääräisen muuttujan avulla.


      • Anonyymi
        Anonyymi kirjoitti:

        En tiedä miten on nykyisin mutta joskus ennen \n (newline) ei toiminut Windowsissa jossa sen pitää olla \r (return) ja tuo ei taas toimi Linuxissa ja Macissa. Toisaalta nuo makrot luovat enemmän ongelmia kuin ratkovat niitä. Olen joskus niitä käyttänyt paljonkin C kielen kanssa ja lopputulema on se että koodi ei ole sellaisenaan uudelleenkäytettävissä muissa projekteissa. Makroja ei pitäisi käyttää siitä syystä ollenkaan vaan käyttää standardoitua kieltä aina ja poikkeuksetta. Itseasiassa jopa typedef on uskomattoman typerä idea juuri siksi että koodia ei voi sellaisenaan uudelleenkäyttää. Ainoan poikkeuksen luo tuollainen NEWLINE makro koska se käsittelee tulostettavaa tekstiä jota ei ole tarkoitus käyttää missään muualla uudestaan. Mutta ongelma on ratkaistavissa yhden ylimääräisen muuttujan avulla.

        Sehän riippuu siitä mitä haluaa. Tuo \r (carriage return) palauttaa kursorin rivin alkuun ja \n (line feed) siirtää kursorin alas, mutta *nix-järjestelmissä myös lisäksi palauttaa kursorin rivin alkuun. Yhdistelmä \r\n tekee Windowsissa molemmat. https://en.wikipedia.org/wiki/Newline


      • Anonyymi
        Anonyymi kirjoitti:

        En tiedä miten on nykyisin mutta joskus ennen \n (newline) ei toiminut Windowsissa jossa sen pitää olla \r (return) ja tuo ei taas toimi Linuxissa ja Macissa. Toisaalta nuo makrot luovat enemmän ongelmia kuin ratkovat niitä. Olen joskus niitä käyttänyt paljonkin C kielen kanssa ja lopputulema on se että koodi ei ole sellaisenaan uudelleenkäytettävissä muissa projekteissa. Makroja ei pitäisi käyttää siitä syystä ollenkaan vaan käyttää standardoitua kieltä aina ja poikkeuksetta. Itseasiassa jopa typedef on uskomattoman typerä idea juuri siksi että koodia ei voi sellaisenaan uudelleenkäyttää. Ainoan poikkeuksen luo tuollainen NEWLINE makro koska se käsittelee tulostettavaa tekstiä jota ei ole tarkoitus käyttää missään muualla uudestaan. Mutta ongelma on ratkaistavissa yhden ylimääräisen muuttujan avulla.

        Windowsissa käytetään \r\n.

        C# on java paremmin toteutettuna.


    • Anonyymi

      Voit aina kehitellä oman preprocessorisi joka parsettaa koodisi ja prosessoi #define direktiivillä olevat statementit. Prosessoitu lähdekoodi menee Java-kääntäjälle. Helppoa.

      • Ja aina voi kehittää oman ohjelmointikielen, jossa on preprosessori. Helppoa :)


      • Anonyymi
        code_red kirjoitti:

        Ja aina voi kehittää oman ohjelmointikielen, jossa on preprosessori. Helppoa :)

        Kuinka paljon ihmiset noin yleensä välttelevät seuraasi. Minua ainakin oksettaa teikäläinen siinä määrin että oli pakko kysyä.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Tukalaa kuumuutta

      Tietäisitpä vaan kuinka kuumana olen käynyt viime päivät. Eikä johdu helteestä, vaan sinusta. Mitäköhän taikoja olet teh
      Ikävä
      42
      2482
    2. Mansikkatiloilla hyväksikäytetään ukrainalaisia

      Työolot ovat surkeita ja palkka kelvoton. https://yle.fi/a/74-20172942
      Maailman menoa
      302
      2098
    3. Sinä, ihastukseni

      Mitä haluaisit tehdä kanssani ensimmäisenä?
      Ihastuminen
      23
      1872
    4. Tiedät ettei tule toimimaan.

      Mielenterveys ei kummallakaan kestä.
      Ikävä
      24
      1615
    5. Okei, myönnetään,

      Oisit sä saanut ottaa ne housutkin pois, mutta ehkä joskus jossain toisaalla. 😘
      Ikävä
      24
      1475
    6. Onko kaivatullasi

      himmeä kuuppa?
      Ikävä
      44
      1366
    7. Ensi kesänä

      Näin kesän viimeisenä minuutteina ajattelen sinua. Olisiko seuraava kesä "meidän" kesä? Tänä vuonna ei onnistuttu, mutta
      Ikävä
      38
      1345
    8. Sokea "ystävälle"

      Oletko oikeasti noin sokea?
      Ikävä
      100
      1339
    9. En ymmärrä käytöstäsi

      Se on ollut eräänlaista hyväksikäyttöä. Että seura kyllä kelpaa palstan välityksellä silloin kun ei ole parempaakaan tek
      Ikävä
      139
      1305
    10. On jo heinäkuun viimeinen päivä.

      En taida nähdä sinua koskaan.
      Rakkaus ja rakastaminen
      36
      1076
    Aihe