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

VPS Starter Arubacloud
+1 głos
336 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 (269,120 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 (269,120 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 481 wizyt
pytanie zadane 8 lutego 2017 w Java przez NeAst Obywatel (1,170 p.)
0 głosów
2 odpowiedzi 650 wizyt
pytanie zadane 10 września 2016 w C# przez DeBos123 Nałogowiec (44,950 p.)
0 głosów
2 odpowiedzi 481 wizyt
pytanie zadane 9 maja 2018 w Java przez Piotr Brodziak Początkujący (390 p.)

92,452 zapytań

141,261 odpowiedzi

319,074 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...