redhat-developer / redhat-developer/vscode-java
Return null through ternary operator does not give Type mismatch error
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 2.3k
- Forks
- 546
- Ø Merge
- 20 Std. 1 Min.
- Gemergte PRs (30 T.)
- 11
Beschreibung
Returning null through a ternary operator does not give Type mismatch error. It should.
Code 1:
public double getValue() {
return null;
}
null is error-underlined with the error [Java] Type mismatch: cannot convert from null to double.

Code 2:
public double getValue() {
return value == null ? null : Double.parseDouble(value);
}
No errors shown on the returned null.

Code 3:
public double getValue() {
if (value == null)
return null;
else
return Double.parseDouble(value);
}
Same error:

Environment
- Operating System: Windows 10 x64
- JDK version: 8
- Visual Studio Code version: 1.20.0
- Java extension version: 0.18.1
Steps To Reproduce
- Make code shown.
- Look for error.
Current Result
Code 1 & 3 shows error. Code 2 doesn't.
Expected Result
All Code blocks should show error.
Additional Information
Please let me know if you need any logs or anything.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, Code 1, Code 2 und Code 3 in der Java-Erweiterung zu reproduzieren, und vergleiche die Diagnosen für die ternäre und die if/else-Form. Verfolge, wie die Java-Sprachunterstützung Rückgabeausdrücke analysiert, und überprüfe anschließend, dass der ternäre Fall denselben Typkonflikt wie die anderen Beispiele meldet.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- compilers, devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 38/100