Automatisches Casten => inkompatibel

Status
Nicht offen für weitere Antworten.
C

cantdo

Gast
Ich habe gelesen, dass Java automatisch von größere Datentypen in kleiner Datentypen castet.
Aber wieso sagt mir meine Java-Konsole immer noch das folgendes inkompatibel ist (stark vereinfachert Quelltext):

Code:
public int Funktion(short n) {
        return Funktion(n-1) + Funktion(n-2);
    }

Vielen Dank für eure Hilfe,
Alex
 

The_S

Top Contributor
cantdo hat gesagt.:
(stark vereinfachert Quelltext):

Code:
public int Funktion(short n) {
        return Funktion(n-1) + Funktion(n-2);
    }

so erzeugst du ne Endlosschleife :bae: . Versteh deswegen auch nicht so wirklich was du genau möchtest. Möchtest du ein int in ein short casten? Falls ja

int i = 0;
short s = (short)i;
 
G

Guest

Gast
ich sach ja, dass das nur vereinfacht ist. hier der komplette Quelltext:

Code:
	public int recursiveFib(short n) {

		if(n < 0)
			return -1;


			else if(n == 0)
			return 0;


			else if(n == 1)
			return 1;


			else
			return (recursiveFib(n-1) + recursiveFib(n-2));
		}

Wie man sieht, sollen die Fibonacci-Zahlen dargestellt werden. Leider kommt es bei dem letzten return immer zu einem Fehler und ich weiß nicht wieso. Die Fehlermeldung sagt mir "recursiveFib(short) cannot be applied to <int>" aber warum nicht????
 

Leroy42

Top Contributor
cantdo hat gesagt.:
Ich habe gelesen, dass Java automatisch von größere Datentypen in kleiner Datentypen castet

Eben nicht; genau umgekehrt.

Bei der Berechnung von n-1 und n-2 ist n zwar ein short, die Berechnung selbst liefert jedoch
ein int, das du dann als Parameter der Funktion verwenden willst, die dort wiederum nur
ein short erwartet.

Entweder castest du den Parameter vor Aufruf zu short, oder du machst gleich alles zu int.

Wieso du überhaupt zwischendurch shorts verwendest ist mir schleierhaft.
 
G

Guest

Gast
Is leider so in der aufgabenstellung :(

Wenn du mir sagen kannst, wie ich das Problem löse, sodass das short als Parameter stehen bleiben kann, wäre das super!
 

Leroy42

Top Contributor
Habe ich doch: Hier mal umgesetzt.
Code:
return (recursiveFib((short) (n-1)) + recursiveFib((short) (n-2)));
 
G

Guest

Gast
Vielen herzlichen Dank.
Ich hatte es auch erst so versucht, aber keine Klammer um (n-1) und (n-2) gemacht.
Wieso muss da eigentlich eine Klammer drum?
 

Leroy42

Top Contributor
Weil ein Cast höhere Präzedenz (oder heißt das Priorität) hat als Subtraktion.
Code:
(short) n - 1
wird automatisch zu
Code:
((short) n) - 1
geklammert, so daß nach Umwandlung des n dieses wieder zu int umgewandelt werden
müßte da die Konstante 1 ja vom Typ int ist und der Compiler deshalb wieder eine Integer-Addition
initiieren müßte.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J automatisches ausfüllen eines PDF Formulars Java Basics - Anfänger-Themen 4
S Erste Schritte Bluej Automatisches Einfügen von Objekten Java Basics - Anfänger-Themen 4
C Automatisches Ausfuehren einer Funktion beim Laden eines Jar files Java Basics - Anfänger-Themen 3
J Automatisches Auslesen der Zwischenablage plattformübergreif Java Basics - Anfänger-Themen 3
B Automatisches öffenen eines Fensters Java Basics - Anfänger-Themen 10
M Automatisches Methoden-Einfügen bei Eclipse? Java Basics - Anfänger-Themen 2
tom.j85 TicTacToe - probleme beim Casten Java Basics - Anfänger-Themen 6
B Datentypen Welcher Typ wird beim Casten übernommen? Java Basics - Anfänger-Themen 12
G Probleme beim casten von double zu int Java Basics - Anfänger-Themen 3
BuTTerBroTHDx Char Wert in int casten ? Java Basics - Anfänger-Themen 4
A Vererbung Mit Casten direkt auf Sub-Klasse Zugreiffen Java Basics - Anfänger-Themen 6
N Variablen zurück casten Java Basics - Anfänger-Themen 3
F Casten bei Implements Java Basics - Anfänger-Themen 2
S Klassen casten, IS-A Beziehung Java Basics - Anfänger-Themen 5
J Generics casten Java Basics - Anfänger-Themen 14
U Klassen Dynamisches Casten? Java Basics - Anfänger-Themen 39
T Probleme beim casten Java Basics - Anfänger-Themen 9
M Casten Java Basics - Anfänger-Themen 2
K Collections Vector zu String casten Java Basics - Anfänger-Themen 4
S Polymorphes Objekt in eigentliche Klasse casten Java Basics - Anfänger-Themen 6
masii Methoden Parameter casten? Java Basics - Anfänger-Themen 2
D Datentypen Abstrakter Datentyp lässt sich nicht casten Java Basics - Anfänger-Themen 7
U ArrayList casten Java Basics - Anfänger-Themen 37
F g.drawLine in g 2D casten Java Basics - Anfänger-Themen 5
A Klassen ArrayList richtig / sicher Casten? Java Basics - Anfänger-Themen 3
J Frage zu generischer Klasse und Casten Java Basics - Anfänger-Themen 14
M Frage zum Casten von Objekten Java Basics - Anfänger-Themen 5
M sicheres/unsicheres Casten bei Objekten Java Basics - Anfänger-Themen 13
D Object auf JTextpane / jTextArea casten? Java Basics - Anfänger-Themen 3
B Casten oder vielleicht was anderes? Java Basics - Anfänger-Themen 9
T Boolean in ein Objektdatentyp casten möglich? Java Basics - Anfänger-Themen 5
J Casten (Typumwandlung) Java Basics - Anfänger-Themen 12
P Casten Hash Map Java Basics - Anfänger-Themen 4
W Auf 'this' casten Java Basics - Anfänger-Themen 3
M Dynamisches Casten mal wieder Java Basics - Anfänger-Themen 4
M casten Java Basics - Anfänger-Themen 11
D Casten eines Objekts: Funktion der Oberklasse aufrufen Java Basics - Anfänger-Themen 4
G Datentypen char to int casten - falsches Ergebnis! Java Basics - Anfänger-Themen 6
S casten array in int von float Java Basics - Anfänger-Themen 5
A Dynamisches casten Java Basics - Anfänger-Themen 19
C Probleme beim casten und Objekt zugriff Java Basics - Anfänger-Themen 12
P Klasse nach Element casten Java Basics - Anfänger-Themen 4
G Double casten Java Basics - Anfänger-Themen 8
O Object nach Double casten Java Basics - Anfänger-Themen 11
L Object[] in String[] casten Java Basics - Anfänger-Themen 7
V Gelesene FTP Datei richtig casten Java Basics - Anfänger-Themen 9
T Properties casten Java Basics - Anfänger-Themen 4
G Arrays casten? Java Basics - Anfänger-Themen 12
G string "null" in null casten Java Basics - Anfänger-Themen 3
M casten und Generics Java Basics - Anfänger-Themen 9
S Objekt Casten Java Basics - Anfänger-Themen 4
G String nach int casten Java Basics - Anfänger-Themen 5
G Vektor auslesen und als int Variable casten Java Basics - Anfänger-Themen 4
G String in Date casten. Java Basics - Anfänger-Themen 7
G String in Date casten Java Basics - Anfänger-Themen 4
G String in Long casten Java Basics - Anfänger-Themen 2
G Object[] [] nach vector casten. Java Basics - Anfänger-Themen 3
G printStackTrace(); in String casten Java Basics - Anfänger-Themen 3
G String in int casten Java Basics - Anfänger-Themen 2
G Integer[] nach int[] casten - wie? Java Basics - Anfänger-Themen 2
D Arrays casten Java Basics - Anfänger-Themen 12
G Casten ? Java Basics - Anfänger-Themen 3
HaukeG Casten to String und Vergleichen Java Basics - Anfänger-Themen 2
G ich komm nicht weiter -> String in int casten Java Basics - Anfänger-Themen 4
T Casten von Choice auf Vector oder Object[] Java Basics - Anfänger-Themen 14
B Vector nach float[] casten Java Basics - Anfänger-Themen 6
G String zu byte[] "casten"? Java Basics - Anfänger-Themen 3
M Hin und Her Casten Object->int und int->Object Java Basics - Anfänger-Themen 3
T Typsicheres casten eines Objects Java Basics - Anfänger-Themen 5
D Object[] in Liste casten? Java Basics - Anfänger-Themen 8
T Chaosprogrammierer hat einen fehler beim casten? Java Basics - Anfänger-Themen 5
J Attribut casten Java Basics - Anfänger-Themen 3
A Array mit generischen Typen casten? Java Basics - Anfänger-Themen 6
G Byte-Code einlesen und zu Hex casten Java Basics - Anfänger-Themen 2
T Object[] zu String[] casten? Java Basics - Anfänger-Themen 3
R Double nach Integer casten Java Basics - Anfänger-Themen 8
L Adresse in String[] casten Java Basics - Anfänger-Themen 6
M Object auf Interface casten? Geht das? Java Basics - Anfänger-Themen 21
U ArrayLists und Casten Java Basics - Anfänger-Themen 2
O TreeMap nach Object[] casten? Java Basics - Anfänger-Themen 3
M Casten bei Objekten? Java Basics - Anfänger-Themen 4
S casten von Interface zu Klasse unterbinden Java Basics - Anfänger-Themen 15
M long nach String casten Java Basics - Anfänger-Themen 2
U String nach Integer Casten. Java Basics - Anfänger-Themen 4
G Sting nach int casten Java Basics - Anfänger-Themen 13
A Object casten? Java Basics - Anfänger-Themen 3
R Casten Java Basics - Anfänger-Themen 3
F Casten: Object nach Array Java Basics - Anfänger-Themen 10
M Casten Java Basics - Anfänger-Themen 2
H komme mit casten nicht klar Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben