• 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

Cloud VPS
0 głosów
213 wizyt
pytanie zadane 6 lipca 2024 w Java przez Wojo772233 Użytkownik (500 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 2024 przez adrian17 Mentor (354,620 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 2024 przez Wiciorny Ekspert (281,530 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 2024 przez Wiciorny Ekspert (281,530 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ź 254 wizyt
0 głosów
0 odpowiedzi 444 wizyt
–1 głos
2 odpowiedzi 10,269 wizyt
pytanie zadane 24 maja 2016 w Java przez pynia66.6 Nowicjusz (230 p.)

93,485 zapytań

142,417 odpowiedzi

322,765 komentarzy

62,898 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

Kursy INF.02 i INF.03
...