• 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#.

Object Storage Arubacloud
+1 głos
360 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,280 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 (270,190 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,280 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 (270,190 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 491 wizyt
pytanie zadane 8 lutego 2017 w Java przez NeAst Obywatel (1,170 p.)
0 głosów
2 odpowiedzi 664 wizyt
pytanie zadane 10 września 2016 w C# przez DeBos123 Nałogowiec (44,950 p.)
0 głosów
2 odpowiedzi 538 wizyt
pytanie zadane 9 maja 2018 w Java przez Piotr Brodziak Początkujący (390 p.)

92,579 zapytań

141,432 odpowiedzi

319,663 komentarzy

61,964 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...