• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak to napisać w Javie, odpowiednik rozwiązania z C#.

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
+1 głos
787 wizyt
pytanie zadane 6 sierpnia 2020 w Java przez Nickowy3456 Użytkownik (610 p.)

Witajcie.

Otóż dawno temu siedziałem w C# i tam sobie tworzyłem.Dokładnie mowa o gettery i settery.Bo jak w Javie trzeba ręcznie je tworzyć jako funkcje,tak w C# jest wygodniejsze rozwiązanie.Otóż macie tutaj kod w C#. Dokładnie mowa o słownikach i obiektach. Tutaj niżej C#

            var zmienne = new Dictionary<string, Klasa>();
            zmienne.TryAdd("Audi", new Klasa { Name = "Audi", Model = "A4", Year = 2004 });
            zmienne.TryAdd("Volkswagen" , new Klasa { Name = "Volkswagen", Model = " Passat",Year = 2001 });
            zmienne.TryAdd("BMW", new Klasa { Name = "BMW", Model = "e46", Year = 2002 });

           // klasyczna klasa - Klasa
           //Gettery i Settery klasyczne  ->   public string Name {get; set;} ...

A tutaj w Javie jak to zrobić. Chcę identycznie zrobić, czyli utworzyć klasę Car i gettery i settery jako funkcje -klasyczne. Stworzyć także HashMap w Javie. I pytanie da się tak samo zrobić? że słownik/mapa -> zmienne.put(new Car { tutaj get i set } ); w Javie? Bo jako tako jak próbuje to nie bardzo się da, IDE zwraca mi błąd..

2 odpowiedzi

+2 głosów
odpowiedź 6 sierpnia 2020 przez mbabane Szeryf (79,260 p.)

Identycznie nie, ale możesz zrobić to np. klasycznym konstruktorem lub użyć buildera z lomboka https://www.baeldung.com/intro-to-project-lombok . Klasycznie z konstruktorami będzie tak:

new Klasa( "Audi","A4",  2004)


class Klasa {

  private String brand;
  private String model;
  private int year;

  // IDE zwykle mają generatory do takich konstruktorów
  //lub także można do tego użyć lomboka adnotacja @AllArgsContstructor  
  Klasa (String brand, String model, int year) {
     this.brand = brand;
     // itd.
  }

}

Niestety java tutaj jest dość siermiężna, ale na szczęście ktoś wymyślił i zrobił lomboka.

komentarz 6 sierpnia 2020 przez Wiciorny Ekspert (281,310 p.)
Lombok z jakartą potwornie źle działa :(, np. w EJB z mapowaniem automatycznie geterów i seterów połowa klas się wysypuje, ale dla springowych API jest mega przejrzyście
komentarz 7 sierpnia 2020 przez miro Pasjonat (23,870 p.)
Potwierdzam, mogą być problemy z lombokiem, chyba trzeba poczekać na record class.
komentarz 7 sierpnia 2020 przez mbabane Szeryf (79,260 p.)
Z hibernate i spring'ami nie ma najmniejszego problemu z lombokiem.
+1 głos
odpowiedź 6 sierpnia 2020 przez miro Pasjonat (23,870 p.)

Możesz tworzyć obiekty przez konstruktor:
 

var zmienne = new HashMap<String, Klasa>();
 zmienne.put("Audi", new Klasa (  "Audi",  "A4",  2004 );
 zmienne.put("BMW", new Klasa (  "BMW",  "e46",  2002 );

public Klasa(String name, String model, int year)

 

1
komentarz 6 sierpnia 2020 przez Wiciorny Ekspert (281,310 p.)
edycja 6 sierpnia 2020 przez Wiciorny

Jakby mi ktoś tak w projekcie napisał 

var zmienne = new HashMap<String, Klasa>();


to by pewnie szybko wyleciał 
przy okazji var nie stosujemy dla pól, tylko dla zmiennych :) pola klasy powinny byc silnie typowane, natomiast zmienne funkcyjne wewnetrznie moga byc var, ale var nie powinien przechowywac map 

komentarz 7 sierpnia 2020 przez miro Pasjonat (23,870 p.)
edycja 7 sierpnia 2020 przez miro
Jasne, masz rację. Sam nie stosuje var jednak to było na szybko edytowane. Po drugie chciałem jak najbardziej mimikować oryginalny kod. Co do uwagi to nie wiadomo czy to pole.

Podobne pytania

0 głosów
3 odpowiedzi 622 wizyt
pytanie zadane 8 lutego 2017 w Java przez NeAst Obywatel (1,170 p.)
0 głosów
2 odpowiedzi 972 wizyt
pytanie zadane 10 września 2016 w C# przez DeBos123 Nałogowiec (44,950 p.)
0 głosów
2 odpowiedzi 733 wizyt
pytanie zadane 9 maja 2018 w Java przez Piotr Brodziak Początkujący (390 p.)

93,443 zapytań

142,434 odpowiedzi

322,691 komentarzy

62,805 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...