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

Problem z metodą Integer.ValueOf(String łańcuch) - Java

VPS Starter Arubacloud
0 głosów
74 wizyt
pytanie zadane 6 lipca w Java przez Wojo772233 Początkujący (460 p.)
import java.lang.NumberFormatException;

public class CharacterDemo {
    public static void main(String[] args) {
        int num = 42;
        
        // Tworzenie obiektu Integer z wartości prymitywnej int
        Integer intObject = Integer.valueOf(num);
        String int_string = "42";
        
        // Tworzenie obiektu Integer z łańcucha znaków
        try {
            Integer intObjectString = Integer.valueOf(int_string);
            System.out.println("intObjectString: " + intObjectString);
        } catch (NumberFormatException e) {
            // Obsługa wyjątku, gdy łańcuch nie jest poprawną liczbą
            e.printStackTrace(); 
        }
        
        // Wyświetlenie obiektu Integer utworzonego z wartości prymitywnej int
        System.out.println("intObject: " + intObject);
    }
}

Witam, czemu metoda nie działa?
 

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
        No exception of type NumberFormatException can be thrown; an exception type must be a subclass of Throwable
        The method printStackTrace() is undefined for the type NumberFormatException

        at CharacterDemo.main(CharacterDemo.java:15)

komentarz 6 lipca przez adrian17 Ekspert (348,220 p.)
To jest cały kod? Żadnych innych plików nie ma? Bo na oko powinno działać:

https://godbolt.org/z/qPsr31fjj
komentarz 6 lipca przez Wiciorny Ekspert (275,640 p.)

kompilacja zadziała gdyż dopiero w procesie runtime dla źle skonfigurowanego projektu, biblioteki ten import - wskażę na błąd w stosunku do domyślnego pakietu java Lang.
Po prostu poprzez ten import, w jego projekcie, kompilator traktuje NumberFormatException  jako jego własno zdefiniowaną klase, bo nie odnajduje importu import java.lang.NumberFormatException; lub traktuje go jako "własną definicje" i próbuje znaleźć 

1 odpowiedź

+1 głos
odpowiedź 6 lipca przez Wiciorny Ekspert (275,640 p.)

Kod jest jak najbardziej poprawny, ale problemem jest kompilacja - albo jest to sposób w jaki uruchamiasz program, albo jest to spowodowane błędną konfiguracją w IDE. 
Problem może być  związany z błędną wersją JDK, bo raczej, patrząc na kod to jednoznacznie błędem jest importowanie 

import java.lang.NumberFormatException;

NumberFormatException poprzez twój import może powodować problemy, dlatego, że klasa NumberFormatException jest częścią podstawowego pakietu java.lang, który jest automatycznie importowany przez kompilator Java.
W tym momencie kompilator wskazuje na błąd, gdyż dodajesz błędny import. 

Bez importu : 
 

java -cp /tmp/1QCD4F56Iu/CharacterDemo
intObjectString: 42
intObject: 42

=== Code Execution Successful ===

Podobne pytania

0 głosów
1 odpowiedź 185 wizyt
0 głosów
0 odpowiedzi 393 wizyt
–1 głos
2 odpowiedzi 9,900 wizyt
pytanie zadane 24 maja 2016 w Java przez pynia66.6 Nowicjusz (230 p.)

92,843 zapytań

141,784 odpowiedzi

320,859 komentarzy

62,177 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...