Wpis z mikrobloga

#dwajednostkowezerointegracyjnych #java #programowanie

Taka ciekawostka:

import java.util.UUID;

public class MyClass {
public static void main(String args[]) {
System.out.println(UUID.fromString("1-1234567-33445566-a-b"));
}
}

Wynik:

00000001-4567-5566-000a-00000000000b
I weź to teraz wytłumacz, że w testach na to czy wejście jest poprawnie formatowane sobie możesz pogodę posprawdzać, bo na pewno nie UUID. ¯\(ツ)/¯
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@smiech2: no i w czym problem? a wiesz że ping.exe w windowsie akceptuje też ipv4 w postaci surowego int32? ( ͡° ͜ʖ ͡°)

martwić bym sie zaczął dopiero jakby w zależności od platformy takie wejścia na granicy specyfikacji dawały różne wyniki, co raczej w tym przypadku nie ma miejscau
  • Odpowiedz
@smiech2: Ale o co chodzi? Wysyłasz coś co zgodnie z RFC 9562 nie jest UUID i dziwisz się że masz undefined behavior. Ja jakbym to implementował to w takiej sytuacji rzuciłbym exceptionem, ale z racji tego że to biblioteka standardowa dlatego pewnie wprowadzili dopełnianie zerami żeby obsłużyć różne niezbyt poprawne outputy z innych systemów.
  • Odpowiedz
Ale o co chodzi? Wysyłasz coś co zgodnie z RFC 9562 nie jest UUID i dziwisz się że masz undefined behavior.


@Waffenek:

Ja jakbym to implementował to w takiej sytuacji rzuciłbym
  • Odpowiedz