inconvertible types hilfe

fill

Mitglied
hallo,
ich habe folgenden code:

Java:
private void verarbeiteMulDiv() {
        if((char)otKeller.top() == '*' ){
            werteAus();
        }    
    }

otKeller ist ein Object das den Stack impementiert.

die fehlermeldung lautet so:
inconvertible types
found : java.lang.Object required: char

durch weglassen des expiziten castens verändert sich nichts

Java:
private void verarbeiteMulDiv() {
        if(otKeller.top() == '*' ){
            werteAus();
        }    
    }

außer der meldung, die lautet nun:

incomparable types: java.lang.Object and char



ein ähnliches problem habe ich hier

Java:
int zahl1; 
zahl1 = (int) odKeller.top();

mit der meldung:

inconvertible types
found : java.lang.Object required: int


ich füchte fast das ich beim casten etwas entscheidendes fals mache... aber was?
weiß jemand wie ich das problem lösen kann?
ich bedanke mich schon mal und
viele grüße fill
 
Zuletzt bearbeitet:

ARadauer

Top Contributor
Zeig mal die Klasse von otKeller.
Was verwalltest du in deinem Keller? Was haben die Dinger für einen typ, was liefert top() wirklich zurück?
Schau dir mal das Thema Generics an...


falls du wirklich Integer drinnen hast
kannst du statt:
zahl1 = (int) odKeller.top();

zahl1 = (Integer) odKeller.top();

schreiben...
 

fill

Mitglied
die klasse von otKeller :


Java:
import java.util.*;

public class Stapel implements Stack
{
    private ArrayList stapel ;
    
    public Stapel()
    {
       stapel = new ArrayList();
    }
    
    public void push(Object pNeu){
        stapel.add(pNeu);    
    }
    
    public void pop(){
        if(isEmpty()==false){
            stapel.remove(stapel.size()-1);
        }
    }
        
    public Object top(){
        if(isEmpty()==false){
            return stapel.get(stapel.size()-1);
        }
        return null;
    }

    public boolean isEmpty(){
       return stapel.isEmpty();
    }


    
    
}



hilft das? die aufgabe war einen allgemein nutzbaren stack zu programmieren um ihn in mehren anwendungen zu benutzen, deswegen wird mit Object gearbeitet.
 
S

SlaterB

Gast
was veranlaßt dich denn dazu, eine Codezeile wie
> if((char)otKeller.top() == '*' ){
zu programmieren?

allgemein könnte man den Gedanken äußern, dass ein Objekt niemals == einem char ist, und wieso gerade * und nicht a oder b oder c?
hast du vielleicht ein Programm welches Rechenzeichen in den Stack schreibt oder so?
erzähl doch bitte mehr,
poste den Code dazu wo ein * oder ähnliches gespeichert wird
 

faetzminator

Gesperrter Benutzer
Das ganze könnte man mit Generics wirklich etwas schöner lösen.
Aber ohne Generics:
Du hast ein Objekt vom Typen Integer, welcher einen int speichert. Das weiss aber der Compiler dort nicht - du anscheinend schon. Also musst du zuerst in einen Integer (Wrapper-Objekt) casten und von diesem [c]intValue()[/c] holen. Also so was wie [c]zahl1 = ((Integer) odKeller.top()).intValue();[/c].
Da es seit Java 5 aber Autoboxing gibt (automatisch z.B. von int -> Integer wenn nötig), musst du [c]intValue()[/c] nicht mehr aufrufen. Also wären wir noch bei [c]zahl1 = (Integer) odKeller.top();[/c].
Würdest du Generics verwenden, wüsste man an dieser Stelle bereits, dass da ein Integer rausspringt, und du könntest einfach [c]zahl1 = odKeller.top();[/c] verwenden (dank Autoboxing ;) ).
 

Landei

Top Contributor
Wenn die Klasse wirklich allgemein verwendbar sein sollte, dann braucht ihr Generics.


Ungefähr so (ungetestet):
Java:
import java.util.*;
 
public class Stapel<T> implements Stack<T> {
    private List<T> stapel ;
    
    public Stapel() {
       stapel = new ArrayList<T>();
    }
    
    public void push(T pNeu) {
        stapel.add(pNeu);    
    }
    
    public T pop(){
        if(! isEmpty()){
            return stapel.remove(stapel.size()-1);
        } 
        throw new NoSuchElementException();
    }
        
    public T top(){
        if(! isEmpty()){
            return stapel.get(stapel.size()-1);
        }
        return null;
    }
 
    public boolean isEmpty(){
       return stapel.isEmpty();
    }
}
 

fill

Mitglied
wie gesagt war die erste aufgabe enien allgemeinen Stack zu programmieren, die zweite aufgabe war einen rechner mit priorität (punkt vor strich rechnung) mit hilfe des Stacks zu programmieren.
dort werden 2 stacks odKeller und otKeller erstellt in welche mit Strings bzw. einzelnen rechenzeichen gefüllt werden. im programmverlauf wird es anmachnen stellen nötig zu wissen welches zeichen im Stack ganz oben ist. oder eben auch eine zahl aus dem stack zwischenzuspeichern.

ich habe übrigens folgendes probiert, was keine (!) fehlermeldung ausgibt:

Java:
private void verarbeiteHoch() {
        if(otKeller.top().equals('^')){
            werteAus();
        }   
    }

das * in den letzten posts war eher willkürlichgewaählt, da es auch mit keinem anderen char funktioniert.

fällt euch dazu noch was ein?

edit:

mit
Java:
zahl1 = ((Integer) odKeller.top()).intValue();

kann ich zwar kompileren aber ich bekomme laufzeitfehler...

java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at RechnermitPrioOhneKlammer.werteAus(RechnermitPrioOhneKlammer.java:88)
at RechnermitPrioOhneKlammer.liesTerm(RechnermitPrioOhneKlammer.java:64)

ich habe ja in meinem stack Strings drin, wie bekomme ich die int werte von diesen Strings zb. "23" als 23?
 
Zuletzt bearbeitet:
S

SlaterB

Gast
> fällt euch dazu noch was ein?

alles ist allen sonnenklar, in diesem Code beispielsweise wird char auf Char autogeboxt, da geht der Vergleich mit beliebigen Objects,
andersrum kann Object nicht auf char umgewandelt werden,

die Fragen an dich richten sich hauptsächlich danach, zu erfahren was du eigentlich möchtest
und haben auch zum Ziel dass du alles verstehst,

bisher ist sicherlich von allen ein wirres Durcheinander verschiedener Ideen, aber was Java so tut ist ziemlich klar
 

fill

Mitglied
die Fragen an dich richten sich hauptsächlich danach, zu erfahren was du eigentlich möchtest
und haben auch zum Ziel dass du alles verstehst,

wie gesagt, in den Stack werden Strings reingeworfen, und ich möchte irgentwann diese Strings aus dem Stack mit .top() wieder haben, um einerseits festzustellen um welche zeichen es sich handelt, und andererseits mit ihnen auch zu rechnen. ich hoffe das ist so weit verständlich. Mit generics wollte ich eigentlich nicht arbeiten weil, das ganze in einem rahmen bleiben sollte, und (da bin ich mir sicher) auch so funktioniert (, wenn man die richtigen befehle hat/kann/benutzt) .

im moment versuche ich dies mit diesen :

Java:
if(otKeller.top().equals('^'))

und diesen

Java:
zahl1 = ((Integer) odKeller.top()).intValue();

befehlen, doch beim letzteren treten laufzeitfehlerauf auf:

java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at RechnermitPrioOhneKlammer.werteAus(RechnermitPrioOhneKlammer.java:88)
at RechnermitPrioOhneKlammer.liesTerm(RechnermitPrioOhneKlammer.java:64)


jetzt würde ich gerne wissen ob das von prinzip her richtig ist und was ich ändern muss um es lauffähig zu bekommen.
das ist schon alles was ich wollte, also kann mir da einer nen guten ratschlag oder gar die lösung anbieten?
 
S

SlaterB

Gast
die Zeichenkombination 'String' taucht im gesamten Thread erst um 17.13 auf, da wäre ich mit dem 'wie gesagt' vorsichtig,
aber gut, nun habe ich diese Info auch bemerkt,

einen String kann man mit einem char nicht vergleichen, auch kann man ihn nicht in int casten,
Integer.parseInt() hilft zum int,
string.equals("*") wäre ein passender Vergleich
oder string.charAt(0) == '*'
für all das das Objekt aus dem Stack immer erstmal nach String casten

grundsätzlich erscheint es akzeptabel, nur Strings im Stack zu speichern, nicht gemischt Strings/ Integer/ andere Objekte
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Compiler-Fehler Inconvertible Types Java Basics - Anfänger-Themen 3
J int temp = (int) it.next(); -> inconvertible types? Waru Java Basics - Anfänger-Themen 3
F java: incompatible types: possible lossy conversion from double to int Java Basics - Anfänger-Themen 1
Elyt Error: incompatible types Java Basics - Anfänger-Themen 3
R Operatoren Bad operand types for binary operator Java Basics - Anfänger-Themen 4
L Operatoren error: bad operand types for binary operator && Java Basics - Anfänger-Themen 8
I bad operand types for binary operator > Java Basics - Anfänger-Themen 5
H Operatoren Fehler bad operand types for binary operator Java Basics - Anfänger-Themen 7
UnityFriday method getPrevious in class List<ContentType> cannot be applied to given types Java Basics - Anfänger-Themen 29
D incompatible Types Problem in Greenfoot Java Basics - Anfänger-Themen 5
L incomparable types Java Basics - Anfänger-Themen 13
J Grundsätzliche Frage zu return Types in Methoden Java Basics - Anfänger-Themen 6
B Map, basic types & Object Java Basics - Anfänger-Themen 5
A error: incompatible types Java Basics - Anfänger-Themen 9
J Java Generics - Frage zu Types Java Basics - Anfänger-Themen 2
Q Compiler-Fehler Incompatible types bei ArrayList.get Java Basics - Anfänger-Themen 3
J bad operand types for binary operator Java Basics - Anfänger-Themen 3
D Compiler-Fehler incompatible types bei einer Stelle Java Basics - Anfänger-Themen 34
E incompatible types bei eigenen Klassen Java Basics - Anfänger-Themen 7
T Unconvertible types für Tastatureingabe? Java Basics - Anfänger-Themen 20
S Hilfe - java.lang.RuntimeException: Uncompilable source code - incompatible types Java Basics - Anfänger-Themen 10
G super operator und incompatible types, simple fehler Java Basics - Anfänger-Themen 8
C HashMap liefert HashMap zurück - incompatible types Java Basics - Anfänger-Themen 2
R Incompatible operand types Integer and int Java Basics - Anfänger-Themen 2
S Fehlermeldung : "incompatible types" Java Basics - Anfänger-Themen 5
R incompatible types Java Basics - Anfänger-Themen 3
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
H pdf stempel - Hilfe erbeten Java Basics - Anfänger-Themen 6
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
A Hilfe beim Lesen von Pfaden und Systemvariablen Java Basics - Anfänger-Themen 3
F RegEx Hilfe Java Basics - Anfänger-Themen 5
S Hilfe bei Endlosschleife Java Basics - Anfänger-Themen 2
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
U Ich bräuchte Hilfe Java Basics - Anfänger-Themen 1
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
Justin4687 Benötige Hilfe bei folgender Aufgabe Java Basics - Anfänger-Themen 2
aero043 Hilfe bei BlueJ Hausübung Java Basics - Anfänger-Themen 27
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
P Hilfe gesucht Java Basics - Anfänger-Themen 11
D Hilfe bei Calculator Test Java Basics - Anfänger-Themen 15
R Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
R Java Bücher hilfe Java Basics - Anfänger-Themen 9
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
I Scheduling: "Quartz" verwenden, Hilfe bei Umstellung Java Basics - Anfänger-Themen 3
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
Ekooekoo Hilfe spiel Java Basics - Anfänger-Themen 5
SpiritsHuner Hilfe!! Java Basics - Anfänger-Themen 16
Lacotto Java Kurs Aufgaben Hilfe Java Basics - Anfänger-Themen 14
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
X Hilfe beim Übertragen in eine For-Schleife Java Basics - Anfänger-Themen 1
Neuling47 Denkfehler? Hilfe Java Basics - Anfänger-Themen 11
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
L Hilfe bei RegEx Java Basics - Anfänger-Themen 4
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
Neuling47 bräuchte dringend hilfe Java Basics - Anfänger-Themen 6
D Bräuchte Hilfe im Bezug zum printarray() Java Basics - Anfänger-Themen 4
M Bitte um Hilfe bei 2DArrays Java Basics - Anfänger-Themen 8
HeiTim Array hilfe Java Basics - Anfänger-Themen 14
M LCD-Ziffern-Hilfe Java Basics - Anfänger-Themen 6
özkan hilfe!! Java Basics - Anfänger-Themen 4
C Hilfe bei einem Anfängerprojekt Java Basics - Anfänger-Themen 25
D Abrechnung bitte um hilfe Java Basics - Anfänger-Themen 25
J Brauche Hilfe bei for-each Aufgabe Java Basics - Anfänger-Themen 1
D Zahlentabelle Anfänger braucht Hilfe Java Basics - Anfänger-Themen 1
HeiTim Brauche Hilfe soll ein nummeriertes Feld ausgeben lassen Java Basics - Anfänger-Themen 17
S Interaktive Abfrage, Hilfe mit Schleifen! Java Basics - Anfänger-Themen 6
N Hilfe bei der Installation Java Basics - Anfänger-Themen 2
J Brauche Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
S Hilfe bei Programmierung einer Hotelabrechnung Java Basics - Anfänger-Themen 5
enjoykimii Strukturierte Programmierung Hilfe Java Basics - Anfänger-Themen 29
H Bräuchte hilfe Java Basics - Anfänger-Themen 3
D Snake-Spiel ähnliche Aufgabe Hilfe Java Basics - Anfänger-Themen 3
H Brauche Hilfe Java Basics - Anfänger-Themen 2
D Dijkstra Algorithmus Hilfe!! Java Basics - Anfänger-Themen 9
H Hilfe Java Basics - Anfänger-Themen 6
H Brauche hilfe Java Basics - Anfänger-Themen 3
M Hilfe - Array Aufgabe Java Basics - Anfänger-Themen 8
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
kevkev Hilfe bei Schiffe versenken Java Basics - Anfänger-Themen 5
FelixxF Erste Schritte Hilfe bei Fußball Manager Java Basics - Anfänger-Themen 2
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
C Brauche Hilfe um ein Programm zu schreiben Java Basics - Anfänger-Themen 8
josfe1234 Hilfe access denied ("java.io.FilePermission" " " "read") Java Basics - Anfänger-Themen 12
Vivien Hilfe bei Type Conversion Java Basics - Anfänger-Themen 3
Leo0909 Ich brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 2
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
N Laufzeitberechnung - dringende Hilfe! Java Basics - Anfänger-Themen 1
G Java Hilfe Java Basics - Anfänger-Themen 3
J Java List, Bitte um Hilfe Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben