Mam stos Integer i pracuję nad metodą wstawiania do niej elementów z JOptionPane. Jednak JOptionPane zwraca ciąg, więc przeanalizowałem go na int, ale potem próbowałem wstawić wartość do stosu i najwyraźniej najpierw muszę przekonwertować ją z int na Integer.

Próbowałem więc z tym, o czym wspominał każdy przewodnik, utworzyć nowy obiekt Integer z wartością parsedInt, ale otrzymuję błąd

"unexpected type
  required: class
  found:    type parameter Integer
  where Integer is a type-variable:
    Integer extends Object declared in class SizedStack"

To jest kod, który próbuję

public void addToStack(JOptionPane optionPane) {
    int val;
    String temp;
    temp = optionPane.showInputDialog("Enter an integer to insert into the stack");
    val = parseInt(temp);
    Integer valInteger = new Integer(val);
    this.push(valInteger);
}

Wiersz Integer valInteger = new Integer(val); jest tym, który sygnalizuje błąd.

Jakieś pomysły, co jest nie tak?

-1
Dasphillipbrau 26 marzec 2020, 03:56

2 odpowiedzi

Najlepsza odpowiedź

Wygląda na to, że zadeklarowałeś swoją klasę podobną do:

class SizedStack<Integer> {

Integer jest teraz zmienną typu, a nie klasą java.lang.Integer.

Jeśli chcesz, aby była to klasa ogólna, napisz ją w następujący sposób:

class SizedStack<T> {

Lub dla Integer - tylko stos.

class SizedStack {

Jeśli jest to Integer - tylko stos implementujący stos ogólny.

class SizedStack implements Stack<Integer> {
4
Tom Hawtin - tackline 26 marzec 2020, 01:03

Jeśli nie zaimportowałeś statycznie metody Integer.parseInt(), sądzę, że brakuje ci klasy Integer z wywołania parseInt().

public void addToStack(JOptionPane optionPane) {
    int val;
    String temp;
    temp = optionPane.showInputDialog("Enter an integer to insert into the stack");
    val = Integer.parseInt(temp);
    Integer valInteger = new Integer(val);
    this.push(valInteger);
}

Zmieniono val = parseInt(temp); na val = Integer.parseInt(temp);

0
Jaeheon Shim 26 marzec 2020, 01:21