Pytania otagowane jako type-casting


10
Czy można mieć obiekty, które się rzucają, nawet jeśli zanieczyszczają interfejs API ich podklas?
Mam klasy bazowej, Base. Ma dwie podklasy Sub1i Sub2. Każda podklasa ma kilka dodatkowych metod. Na przykład Sub1ma Sandwich makeASandwich(Ingredients... ingredients)i Sub2ma boolean contactAliens(Frequency onFrequency). Ponieważ metody te przyjmują różne parametry i robią zupełnie różne rzeczy, są całkowicie niezgodne i nie mogę po prostu użyć polimorfizmu do rozwiązania tego problemu. …

5
Czy moje użycie jawnego operatora rzutowania jest rozsądne, czy zły hack?
Mam duży przedmiot: class BigObject{ public int Id {get;set;} public string FieldA {get;set;} // ... public string FieldZ {get;set;} } oraz specjalistyczny obiekt podobny do DTO: class SmallObject{ public int Id {get;set;} public EnumType Type {get;set;} public string FieldC {get;set;} public string FieldN {get;set;} } Osobiście uważam koncepcję jawnego przeniesienia …


4
Co ma znaczyć casting?
Podczas kodowania w językach niskiego poziomu, takich jak CI, zauważ, że rzutowanie czasami oznacza „reinterpretuj te bajty, tak jakby zawsze był tego innego typu”, a innym razem jako „inteligentnie przekonwertuj tę wartość na ten inny typ”. Jakie jest pierwotne znaczenie tego słowa i czy istnieje spójność, kiedy należy spodziewać się …

6
Jak uniknąć downcastingu?
Moje pytanie dotyczy specjalnego przypadku superklasy Animal. Moja Animalpuszka moveForward()i eat(). Sealrozszerza się Animal. Dogrozszerza się Animal. I jest specjalne stworzenie, które rozszerza także Animaltzw Human. Humanimplementuje również metodę speak()(nie zaimplementowaną przez Animal). W implementacji metody abstrakcyjnej, która akceptuje Animal, chciałbym użyć tej speak()metody. To nie wydaje się możliwe bez …

3
Czy dobrą praktyką jest używanie ostrzeżeń pomijanych w kodzie?
Używam @SuppressWarnings("unchecked")i @SuppressWarnings("null")głównie powyższych metod, aby umożliwić kompilację kodu bez ostrzeżeń, ale mam wątpliwości. Znaleziono to pytanie Stackoverflow . Jon Skeet napisał odpowiedź , która wydaje mi się intrygująca. Według niego, Czasami ogólne elementy języka Java po prostu nie pozwalają ci robić tego, co chcesz, i musisz skutecznie powiedzieć kompilatorowi, …

2
Prawidłowy projekt, aby uniknąć użycia dynamic_cast?
Po przeprowadzeniu niektórych badań nie mogę znaleźć prostego przykładu rozwiązującego często spotykany problem. Powiedzmy, że chcę utworzyć małą aplikację, w której mogę tworzyć Squares, Circles i inne kształty, wyświetlać je na ekranie, modyfikować ich właściwości po ich wybraniu, a następnie obliczać wszystkie ich obwody. Zrobiłbym klasę modelu w ten sposób: …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.