Type inference

Javt

Aktives Mitglied
Hi,

Wieso kann Java anhand von "Type inference" von folgendem nicht den Typ ableiten?:
Java:
Pocket<String> pocket = hasPocket ? Pocket.newInstance() : null;
Ich mein, links steht doch der genaue Typ. Wieso kann er dann nicht davon ableiten, dass "Pocket.newInstance()" auch vom Typ "Pocket<String>" sein muss?

lg
 
S

Spacerat

Gast
Das geht mit einem Trick... ist aber mit Vorsicht zu geniessen.
Java:
class Pocket<T> {
  public static <T> Pocket<T> getInstance() {
    // Wie kann ein Singleton eigentlich generisch sein?
    // Wenn dir hier also etwas sinnvolles einfaellt...
    // immer rein damit ;)
    retutn (Pocket<T>) instance;
  }
}
So... Singleton steht dort, weil du die dafür vorgesehene Methode zum besorgen der Instanz verwendet hast. Für so etwas ist Singleton aber keinesfalls sinnvoll, weil die Methode parametrisiert (evtl. per [c]getInstance(Class<T> clazz)[/c] o.ä.) werden müsste. Dann wär's aber 'ne Factory.
 
H

hüteüberhüte

Gast
Du musst entweder mit Java 7 compilieren - oder Pocket<String> nochmal schreiben. Type inference bezieht sich nur auf die Überprüfung, ob alle Typen miteinander beim Compilieren vereinbar sind
 
N

nillehammer

Gast
Die Methode newInstance muss selbst generisch deklariert werden , wie das geht, hat Spacerat schon skizziert. Aber ganz so, wie es in seinem Code steht, geht es nicht. Lies Dir den nachfolgenden Code durch. Das müsste es klar machen.
Java:
// Das <T> VOR dem return type (Pocket) macht die Methode
// generisch.
//-------------v----------------
public static <T> Pocket<T> newInstance() {

  return new Pocket<T>();
}

Außerdem gibt es Probleme mit Type Inference beim ternären Operator. Schreibe die Zuweisung in ein if-else-Konstrukt um:
Java:
  Pocket<String> pocket;
  if(hasPocket) {
    pocket = Pocket.newInstance();
  } else {
    pocket = null;
  }
 
Zuletzt bearbeitet von einem Moderator:

ThreadPool

Bekanntes Mitglied
Außerdem gibt es Probleme mit Type Inference beim ternären Operator. Schreibe die Zuweisung in ein if-else-Konstrukt um:
Java:
  Pocket<String> pocket;
  if(hasPocket) {
    pocket = Pocket.newInstance();
  } else {
    pocket = null;
  }

Man kann dem Compiler den Typen explizit mitgeben, das sähe dann (bei identischer Definition von newInstance() in Pocket) so aus:
Java:
		Pocket<String> pocket = hasPocket
								   ? Pocket.<String>create()
								   : null;

Und für die Interessierten weshalb sich der ternäre Operator so verhält wie er sich verhält gibt es eine Erläuterung in dem schon etwas älteren Ticket Bug ID: 6721089 ternary conditional operator does not handle generics.
 
Zuletzt bearbeitet:

Javt

Aktives Mitglied
Wieso soll das im "if" ein Problem sein. Der Compiler weiß doch von der ersten Zeile das es sich hier um ein "Pocket<String>" handelt, also müsste ja "newInstance()" ein Ergebnis vom typ "Pocket<String>" liefern?
 
S

Spacerat

Gast
UPSI... hatte mich mit "getInstance()" wohl verlesen. :oops:
@nillehammer: Deswegen funktioniert mein Code ja auch nicht, weil die Pocket-Instance ja noch gar nicht existiert... Dein Code funktioniert aber. Wenigstens einer der aufpasst. ;)

...also müsste ja "newInstance()" ein Ergebnis vom typ "Pocket<String>" liefern?
Richtig, tut es auch. Manche scheinen nur 'ne gewisse Short-Condition-Phobie zu haben.
 
Zuletzt bearbeitet von einem Moderator:

Landei

Top Contributor
Hi,

Wieso kann Java anhand von "Type inference" von folgendem nicht den Typ ableiten?:
Java:
Pocket<String> pocket = hasPocket ? Pocket.newInstance() : null;
Ich mein, links steht doch der genaue Typ. Wieso kann er dann nicht davon ableiten, dass "Pocket.newInstance()" auch vom Typ "Pocket<String>" sein muss?

lg

Ich habe die Erfahrung gemach, dass sich der ternäre Operator bei der Typinferenz etwas zickig hat. In vielen Fällen könnte problemlos ein gemeinsamer Typ abgeleitet werden, aber wenn das nicht genau stimmt, meckert der Compiler. Und wenn es geht, ist es auch nicht immer koscher:

Java:
Number x = false ? Double.valueOf(3.3) : Integer.valueOf(7);
System.out.println(x);  // 7.0
System.out.println(x.getClass()); //class java.lang.Double

WTF?!?
 
S

Spacerat

Gast
Java:
Number x = false ? Double.valueOf(3.3) : Integer.valueOf(7);
System.out.println(x);  // 7.0
System.out.println(x.getClass()); //class java.lang.Double

WTF?!?
Genau... WTF?!? Ist hier false etwa teilweise zutreffend (true)? Wir sind hier doch nicht bei PHP. :lol:
 

Noctarius

Top Contributor
Nö es wird auf den Typen erweitert, der für beide passen würde und das ist Double, da Integer zwar in Double passt aber Double nicht in Integer.
 
N

nillehammer

Gast
ThreadPool hat gesagt.:
Man kann dem Compiler den Typen explizit mitgeben, das sähe dann (bei identischer Definition von newInstance() in Pocket) so aus:
Java:
Pocket<String> pocket = hasPocket
  ? Pocket.<String>create()
  : null;
Und für die Interessierten weshalb sich der ternäre Operator so verhält wie er sich verhält gibt es eine Erläuterung in dem schon etwas älteren Ticket Bug ID: 6721089 ternary conditional operator does not handle generics.
Da hab ich jetzt echt mal was neues über Java gelernt, dass ich noch nicht wusste. Dankeschön!:applaus:
 

Noctarius

Top Contributor
Aber Number ist ja kein echter Zahlenwert, sondern eine reine Oberklasse für Zahlen. List ist ja auch nur ein Interface für Listen. Daher würdest du ja auch immer die implementierende Klasse bekommen und nicht List und bei Zahlenwerten hast du halt immer noch seltsame Zusatzeffekte vom Autoboxing dazu.
 

Landei

Top Contributor
Ich habe ja gerade
Code:
Integer
und
Code:
Double
statt
Code:
int
und
Code:
double
verwendet, damit hier kein Autoboxing nötig ist.

Bestimmt kann man obiges Verhalten irgendwie begründen, aber das "Principle of Least Surprise" ist hier klar verletzt.
 

Noctarius

Top Contributor
Äh gerade dann ist Autoboxing nötig [c]int -> Number = Integer[/c] und [c]double -> Number = Double[/c]. Wo siehst du da keinen Autoboxing-Zwang?
 

Landei

Top Contributor
Ich schrub: [c]Number x = false ? Double.valueOf(3.3) : Integer.valueOf(7);[/c].

Sind wir uns einig, dass [c]Double.valueOf(3.3)[/c] ein [c]Double[/c] und [c]Integer.valueOf(7)[/c] ein [c]Integer[/c] ist? Wieso sollte dann irgend welches Boxing stattfinden, wenn das "Ziel" [c]Number[/c] ist?
 
S

Spacerat

Gast
Ich schrub: [c]Number x = false ? Double.valueOf(3.3) : Integer.valueOf(7);[/c].

Sind wir uns einig, dass [c]Double.valueOf(3.3)[/c] ein [c]Double[/c] und [c]Integer.valueOf(7)[/c] ein [c]Integer[/c] ist? Wieso sollte dann irgend welches Boxing stattfinden, wenn das "Ziel" [c]Number[/c] ist?
Äh... ja. An dieser Stelle wird's also wieder ein WTF. Wär mal interessant zu erfahren, warum die JVM da so etwas macht, selbst wenn Noctarius Erklärung zunächst einleuchtend erschien. Ob man die betreffenden Beiträge evtl. abkoppeln könnte? Ist's evtl ein Bug?
 

ThreadPool

Bekanntes Mitglied
[...] Ist's evtl ein Bug?

Da es sich also bei dem Beispiel um zwei Typen handelt die in primitive numerische Werte überführt werden können (was durch Unboxing Conversion geschieht) wird eine "Binary Numeric Promotion" (die zwei Werte als Argument bekommt) vorgenommen, die besagt, dass wenn einer der Beteiligten ein double ist der andere auch zu einem double wird. Laut Definition ist das Ergebnis des Conditional dann ein double. In unserem Fall wird dieser double wieder heimlich in einen Double überführt und schließlich implizit auf Number gecastet.

Nachlesen kann man das unter

Chapter 15. Expressions mit den wichtigen Referenzen auf Chapter 5. Conversions and Promotions und Chapter 5. Conversions and Promotions.
 
S

Spacerat

Gast
Das wäre das einleuchtende bei Noctarius Erklärung gewesen. Aber ich kann mich da Landei's Frage nur anschliessen. Was genau muss da geboxed werden und vor allem warum? Beide Argumente hinter dem Fragezeichen sind bereits vom Typ Number. Und solange Autoboxing die Erklärung bleibt, weil's die JVM fälschlicherweise als [c]Number n = (false)? 3.3 : 7;[/c] interpretiert, ist's ein Bug. Deine Links befassen sich ja nirgends mit diesem Fall, sonder halt nur mit Primitivtypen, wo das Verhalten prinzipiell klar ist.
 
Zuletzt bearbeitet von einem Moderator:
T

TP@unterwegs

Gast
Das steht in dem dritten Link. Zitat: "If any operand is of a reference type, it is subjected to unboxing conversion (§5.1.8)". D.h. der Conditional bekommt hinter dem Vorhang einen int und double. Und der int wird zu double promoted. Das steht da aber Alles.

Threadpool@unterwegs
 
S

Spacerat

Gast
Da hab' ich wohl nicht weit genug weiter gelesen, halt nur den Teil, wo's um Autoboxing von Primitiven ging.
Aber wie auch immer. Die Tatsache, dass es den User überrascht, bleibt unverändert. Normalerweise soll ja jede Short-Condition so arbeiten, wie ihr ausgewalztes Pendant. Das ist hier aber nicht der Fall. Normalerweise wird die Short-Condition auch als ausgewalzter if-else-clause übersetzt.
Java:
	public static String shortCondition(int x, int y) {
		String rc = null;
		rc = (x < y)? "x" : "y";
		return rc;
	}

	public static String ifElseClause(int x, int y) {
		String rc = null;
		if(x < y) {
			rc = "x";
		} else {
			rc = "y";
		}
		return rc;
	}
Code:
  // Method descriptor #15 (II)Ljava/lang/String;
  // Stack: 2, Locals: 3
  public static java.lang.String shortCondition(int x, int y);
     0  aconst_null
     1  astore_2 [rc]
     2  iload_0 [x]
     3  iload_1 [y]
     4  if_icmpge 12
     7  ldc <String "x"> [16]
     9  goto 14
    12  ldc <String "y"> [18]
    14  astore_2 [rc]
    15  aload_2 [rc]
    16  areturn
  
  // Method descriptor #15 (II)Ljava/lang/String;
  // Stack: 2, Locals: 3
  public static java.lang.String ifElseClause(int x, int y);
     0  aconst_null
     1  astore_2 [rc]
     2  iload_0 [x]
     3  iload_1 [y]
     4  if_icmpge 13
     7  ldc <String "x"> [16]
     9  astore_2 [rc]
    10  goto 16
    13  ldc <String "y"> [18]
    15  astore_2 [rc]
    16  aload_2 [rc]
    17  areturn
Dabei muss doch eigentlich schon auffallen (okay, in meinem Beispiel eher weniger. XD), dass nichts geboxed werden muss. Aber worauf ich hinaus will: Landeis Beispiel und das ausgewalzte Pendant dazu, liefern definitiv verschiedene Resultate und das darf meiner Meinung nach nicht sein.
Java:
	public static Number shortCondition(int x, int y) {
		Number rc = null;
		rc = (x < y)? Double.valueOf(3.3) : Integer.valueOf(7);
		return rc;
	}

	public static Number ifElseClause(int x, int y) {
		Number rc = null;
		if(x < y) {
			rc = Double.valueOf(3.3);
		} else {
			rc = Integer.valueOf(7);
		}
		return rc;
	}
Code:
  // Method descriptor #15 (II)Ljava/lang/Number;
  // Stack: 2, Locals: 3
  public static java.lang.Number shortCondition(int x, int y);
     0  aconst_null
     1  astore_2 [rc]
     2  iload_0 [x]
     3  iload_1 [y]
     4  if_icmpge 19
     7  ldc2_w <Double 3.3> [16]
    10  invokestatic java.lang.Double.valueOf(double) : java.lang.Double [18]
    13  invokevirtual java.lang.Double.doubleValue() : double [24] // zu frueh!
    16  goto 28
    19  bipush 7
    21  invokestatic java.lang.Integer.valueOf(int) : java.lang.Integer [28]
    24  invokevirtual java.lang.Integer.intValue() : int [33] // zu frueh!
    27  i2d
    28  invokestatic java.lang.Double.valueOf(double) : java.lang.Double [18]
    31  astore_2 [rc]
    32  aload_2 [rc]
    33  areturn

  // Method descriptor #15 (II)Ljava/lang/Number;
  // Stack: 2, Locals: 3
  public static java.lang.Number ifElseClause(int x, int y);
     0  aconst_null
     1  astore_2 [rc]
     2  iload_0 [x]
     3  iload_1 [y]
     4  if_icmpge 17
     7  ldc2_w <Double 3.3> [16]
    10  invokestatic java.lang.Double.valueOf(double) : java.lang.Double [18]
    13  astore_2 [rc]
    14  goto 23
    17  bipush 7
    19  invokestatic java.lang.Integer.valueOf(int) : java.lang.Integer [28]
    22  astore_2 [rc]
    23  aload_2 [rc]
    24  areturn
Da dürfte meiner Meinung nach erst geboxed werden, wenn der "normale" ifElseClause nicht übersetzt werden kann.
Apropos auswalzen... Nach was müsste man eigentlich wo suchen, wenn man wissen will, ob etwas derartiges schon gemeldet wurde?
 
Zuletzt bearbeitet von einem Moderator:

ThreadPool

Bekanntes Mitglied
[...]Normalerweise soll ja jede Short-Condition so arbeiten, wie ihr ausgewalztes Pendant.

Das ist eine Annahme von dir die falsch ist, da in der JLS nichts darüber gesagt wird, dass das if-else-Statement ein Verhalten identisch zum Conditional-Operator besitzen muss. Status quo ist das beide unterschiedliche Dinge sind die ein ähnliches und in manchen Konstruktionen auch das selbe Verhalten aufweisen. Das die beiden Dinger nicht gleich sind ist auch leicht einzusehen wenn man sich die Definition des if-then-else Statements und die des Conditional Operators ansieht.
 
Zuletzt bearbeitet:
S

Spacerat

Gast
Das das in keiner Sprachspezifikation auftaucht, liegt wohl daran, dass die Funktion des ternären Operators (auch oft als Short-Condition bezeichnet) in jeder anderen Sprache (ausser PHP vllt.) eigentlich klar ist. Es ist ganz allgemein If-Else in Kurzform, warum also sollte es jemals irgendwo Unterschiede zwischen beiden geben. Das ist auch keinesfalls nur eine Annahme von mir, sondern es wird im Allgemeinen so erwartet.
Was aber eine Annahme von mir ist; Ich denke, das Landeis Beispiel vor der Einführung des Auto In/Out Boxing noch korrekt funktioniert hat, obwohl - das ist eigentlich auch offensichtlich. Man könnte den Java-Entwicklern also reinen Gewissens unterstellen, dass sie dort die Wrapperklassen schlicht aus dem selben Grund autoboxen, aus welchem sie eine Short-Condition statt If-Else verwenden würden, nur ist hier diese "Faulheit" ebenso wie das Autoboxing eher unangebracht.
In welchen anderen Sprach-Spezifikation (ausser Java und PHP) sonst, wären diese beiden Definitionen denn auch nicht gleich? Wieso wird beides ausser bei Wrapperklassen immer gleich übersetzt?
 
Zuletzt bearbeitet von einem Moderator:

Noctarius

Top Contributor
Leider gibt es ja noch mehr Dinge in Bezug auf Autoboxing / Unboxing die einen verwundern würden:

Java:
Integer val1 = Integer.valueOf(1);
Integer val2 = Integer.valueOf(1);

if (val1 == val2) { ... }

und
Java:
Integer val1 = Integer.valueOf(3500);
Integer val2 = Integer.valueOf(3500);

if (val1 == val2) { ... }


Der Grund ist klar, den will ich auch nicht diskutieren, aber sowas zu finden (wenn man z.B. beide Werte per Parameter in die Methode bekommt, die Methode nicht selber geschrieben hat und sich eigentlich nur wundert wieso das so unterschiedlich ist, ätzend ;-)
 

ThreadPool

Bekanntes Mitglied
[...]Ich denke, das Landeis Beispiel vor der Einführung des Auto In/Out Boxing noch korrekt funktioniert hat[...]

Nein das hätte es nicht, da wäre das überhaupt nicht möglich gewesen sondern es gäbe einen Compiler-Error das ein "double" kein Number ist. Du hättest "x" als double definieren müssen um es fehlerfrei übersetzen zu können.

Ich muss auch einen kleinen Teil meiner Aussagen zum Unboxing revidieren, dem Conditional werden in dem Beispiel ja sogar schon die primitiven Typen übergeben, also fällt das weg. Es findet wohl nur noch eine Binary Numeric Promotion des int auf einen double statt und dann das versteckte Boxing von double auf Double.

Also im Endeffekt findet das was man vor Java 5 offensichtlich gesehen hat und auch aktiv beeinflussen musste nun hinter dem Vorhang statt, was dann zu überraschten Gesichtern führt.

Edit:

Vor 5 hätte der Code so ähnlich aussehen müssen:

Java:
boolean value = false;
Number x = new Double(value ? new Double(3.3).doubleValue() : new Integer(7).intValue());
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
I No EJB found with interface of type Java Basics - Anfänger-Themen 12
J Scanner cannot be resolved to a type Java Basics - Anfänger-Themen 3
Denix The public type Main must be defined in its own fileJava(16777541) Java Basics - Anfänger-Themen 13
M Umgang mit dem Type "Date" Java Basics - Anfänger-Themen 6
N Fehler "Cannot instantiate the type" Java Basics - Anfänger-Themen 3
nbergmann The type JOptionPane is not accessible. Java Basics - Anfänger-Themen 4
M Type Erasure in Java Java Basics - Anfänger-Themen 12
Vivien Hilfe bei Type Conversion Java Basics - Anfänger-Themen 3
Flo :3 Variablen Type dismatch: cannot convert from string to int Java Basics - Anfänger-Themen 9
P Jackson mapper.readValue mit generischem Type Java Basics - Anfänger-Themen 10
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
D Klassen undefined for the type 'object' Java Basics - Anfänger-Themen 2
N The method setSaldo(double) in the type Konto is not applicable for the arguments (int, int) Java Basics - Anfänger-Themen 2
F Type safety: A generic array of.. Fehler Java Basics - Anfänger-Themen 3
W The type Long is not visible HashMap Java Basics - Anfänger-Themen 4
J-Gallus Ein Getter bekommt eine anderen Type als er Return soll Java Basics - Anfänger-Themen 9
S Fehler: Editor does not contain a main type Java Basics - Anfänger-Themen 3
G Programm wird nicht ausgeführt: Editor does not contain a main type Java Basics - Anfänger-Themen 10
Syncopated Pandemonium Compiler-Fehler The constructor MP3File(File) refers to the missing type NoMPEGFramesException Java Basics - Anfänger-Themen 7
K Operatoren The Operator * is undefined for the argument type(s) double, String Java Basics - Anfänger-Themen 4
K VerketteteListen unexpected type Fehler Java Basics - Anfänger-Themen 2
B OOP Cannot instantiate the type AuDList<Integer> Java Basics - Anfänger-Themen 18
T Compiler-Fehler Null type safety (type annotations) Java Basics - Anfänger-Themen 5
B Methoden The method mirror(double[]) in the type Convolution is not applicable for the arguments (double) Java Basics - Anfänger-Themen 8
I Fehlermeldung: Java does not contain a main type Java Basics - Anfänger-Themen 1
J Fehlermeldung : cannot invoke char(at) int on the primitive type int --- Anfänger Java Basics - Anfänger-Themen 5
V RMI - argument type mismatch Java Basics - Anfänger-Themen 1
S Selection does not contain a main type! Java Basics - Anfänger-Themen 5
R The method printf(String, Object[]) in the type printStrem in not applicable for the arguments ... Java Basics - Anfänger-Themen 3
M "illegal start of type" eindimensionales Schiffe versenken Java Basics - Anfänger-Themen 7
S Vererbung Fehlermeldung: the hierarchy of the type "class name" is inconsistent Java Basics - Anfänger-Themen 10
S Selection does not contain a main type Java Basics - Anfänger-Themen 12
H enum Type Java Basics - Anfänger-Themen 6
K Variablen RETURN in Case-Switch / This method must return a result of type Item Java Basics - Anfänger-Themen 4
P Variablen generic type variablen in object array Java Basics - Anfänger-Themen 1
P enum: cannot be resolved to a type Java Basics - Anfänger-Themen 2
I Erste Schritte Eclipse - Does not contain a main type Java Basics - Anfänger-Themen 8
W Enum Konstruktor Type Java Basics - Anfänger-Themen 2
C MIME-Type null Java Basics - Anfänger-Themen 4
L The operator && is undefined for the argument type(s) String, boolean Java Basics - Anfänger-Themen 8
G default class type Java Basics - Anfänger-Themen 3
C Warning: Type safety: Potential heap pollution via varargs parameter array Java Basics - Anfänger-Themen 5
Joew0815 Compiler-Fehler Unexpected Type - Problem mit Variablen rechnen Java Basics - Anfänger-Themen 7
T selection method does not contain a main type Java Basics - Anfänger-Themen 7
O unexpected type - weiß nicht weiter! Java Basics - Anfänger-Themen 3
M Datentypen problem!! Unexpected type in bleuj Java Basics - Anfänger-Themen 2
P Compiler-Fehler unexpected type - Stehe auf dem Schlauch Java Basics - Anfänger-Themen 3
M This method must return a result of type int Java Basics - Anfänger-Themen 13
T Unhandled exception type Java Basics - Anfänger-Themen 2
J unexpected type variable/value Java Basics - Anfänger-Themen 2
M Collections mit >2 type Parametern? Java Basics - Anfänger-Themen 8
D Compiler-Fehler void is an invalid type for the variable Java Basics - Anfänger-Themen 5
H LocationReferenceImpl cannot be resolved to a type Java Basics - Anfänger-Themen 5
K unexpected type variable/value Java Basics - Anfänger-Themen 7
M Fehlermeldung: the method.... ist undefined for the type object Java Basics - Anfänger-Themen 6
K Erste Schritte selection does not contain a main type Java Basics - Anfänger-Themen 3
M Objekt Cannot instantiate the type ... Java Basics - Anfänger-Themen 10
S this method must return a result of type double Java Basics - Anfänger-Themen 2
L Type/Cast Problem Java Basics - Anfänger-Themen 6
A Variablen Type safety Warnung beseitigen Java Basics - Anfänger-Themen 3
X enum Fehlermeldung "The public type Day must be defined in its own file" Java Basics - Anfänger-Themen 8
B Editor does not contain a main type Java Basics - Anfänger-Themen 3
E Datentypen type cast problem (int, byte,) Java Basics - Anfänger-Themen 5
L Illegal Start of Type, wie finde ich den fehler Java Basics - Anfänger-Themen 4
V Eclipse "Selection does not contain a main type" Java Basics - Anfänger-Themen 13
P BlueJ Fehlermeldung - Illegal Start of Type Java Basics - Anfänger-Themen 8
J Color cannot be resolved to a type Java Basics - Anfänger-Themen 4
B Undefined for the type... Java Basics - Anfänger-Themen 15
D Unhandled Exception type IOException in Constructor Java Basics - Anfänger-Themen 1
B Selection does not contain a main type Java Basics - Anfänger-Themen 2
A The method getYear() from the type Date is deprecated Java Basics - Anfänger-Themen 6
B Type von Class erhalten Java Basics - Anfänger-Themen 2
G incompatibel return type bei vererbung Java Basics - Anfänger-Themen 18
J String cannot be resolved to a type Java Basics - Anfänger-Themen 6
C Editor does not contain a main type Java Basics - Anfänger-Themen 7
J Type-Casting Java Basics - Anfänger-Themen 8
M 'void' type not allowed Java Basics - Anfänger-Themen 18
lumo lösen von: "Type safety"? Java Basics - Anfänger-Themen 4
B method intValue() is undefined for the type String (?) Java Basics - Anfänger-Themen 4
H wieso fehler ? must return a type of int. Java Basics - Anfänger-Themen 4
G Konvertierung String in long type Java Basics - Anfänger-Themen 15
G raw type Java Basics - Anfänger-Themen 2
N Java Sound - Unsupported control type Java Basics - Anfänger-Themen 2
J System.in.read(): Unhandled exception type IOException Java Basics - Anfänger-Themen 12
S falscher return type ? Java Basics - Anfänger-Themen 4
F The type . is ambiguous Java Basics - Anfänger-Themen 2
A Generics Raw Type Java Basics - Anfänger-Themen 9
S type safety, conversions Java Basics - Anfänger-Themen 6
G Kein main Type? Java Basics - Anfänger-Themen 3
S Type safety bei einer ArrayList Java Basics - Anfänger-Themen 2
N invalid method declaration; return type required Java Basics - Anfänger-Themen 4
S Type safety Java Basics - Anfänger-Themen 6
S StringToInt() - Type mismatch: cannot convert from... Java Basics - Anfänger-Themen 16
R Eclipse: This method must return a result of type double. Java Basics - Anfänger-Themen 2
M Fehlermeldung (the method add(OE) in the type Abteilung.) Java Basics - Anfänger-Themen 2
O must be an array type (String array füllen) Java Basics - Anfänger-Themen 7
M method xxx() from the type xxx is deprecated Java Basics - Anfänger-Themen 3
G typeof is undefined for the type "Klassenname" Java Basics - Anfänger-Themen 8
A The method getClass() from the type saveLog is not static Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben