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

2955

    Vastaukset 14

    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. Anni Ihamäki saa tylyä kommenttia TTK:sta - Erityisesti tämä "vääryys" ärsyttää

      Kaikille ei ole mieleen se, että Anni Ihamäki on mukana uudella Tanssii Tähtien Kanssa -kaudella. Ihamäki saa varsin ty
      Kotimaiset julkkisjuorut
      44
      1389
    2. Päivän Riikka: Pandan suklaatehdas Jyväskylästä Viroon

      Menkää töihin! Viroon! --- Liki sata vuotta kestänyt suklaantuotanto makeisvalmistaja Pandan tehtaalla Vaajakoskella pä
      Maailman menoa
      334
      1199
    3. Tiesitkö? Vappu Pimiän ensimmäinen aviomies ei ole Teemu-rakas

      Vappu Pimiä on tätä nykyä naimisissa Teemu Huuhtasen kanssa. Pimiä on toista kertaa naimisissa, sillä ensimmäinen liitto
      Kotimaiset julkkisjuorut
      31
      1003
    4. Mitä et ole valmis sietämään ihmissuhteissasi ja miksi?

      Aiemmin jo kyseltiin mitkä vaatimukset olivat mielestänne liiallisia. Kyselläänkin nyt sitä, että millaisilla asioilla s
      Sinkut
      323
      992
    5. Kai mua vähän

      Masentaa tämä kaikki. Tämä koko meidän välinen juttu on niin vaikea… Voitaisiinko molemmat lopettaa tilanteen ruokkimine
      Ikävä
      133
      823
    6. Älä nyt ylikuormitu vaikka sinusta pidänkin rakas nainen

      Tiedän, että olet minulle oikea. En halua pilata tätä juttua malttamattomuudella, mutta epäilen. Haluan vain olla lähel
      Ikävä
      33
      801
    7. kolme tunnistetta kaivatustasi

      Anna kolme tunnistetta kaivatussasi!
      Ikävä
      50
      781
    8. Treffi-ilmoituksia!

      Tähän avaukseen voipi treffeille halukkaat laittaa oman - lyhyen - vapaamuotoisen hakunsa,burneri emaileinee). Tavoitte
      Sinkut
      194
      698
    9. Riittäisikö se

      Että nähtäisiin viikonloppuisin? Naiselta.
      Ikävä
      61
      615
    10. Olenko käsittänyt oikein?

      Tykkäät, mutta et halua mitään (ymmärrän kyllä syyn miksi et).
      Ikävä
      40
      556
    Aihe