Von java.lang.Object geerbte Methoden werden nicht berücksichtigt #311

Closed
opened 2024-04-01 23:01:22 +00:00 by i21023 · 0 comments
Collaborator

Methoden die von java.lang.Object geerbt werden können nicht aufgerufen werden, wenn sich nicht überschrieben werden.

Beispiel

Sourcecode

import java.lang.String;

class Foo{
    Bar i = new Bar();
    toString(){
        return i.toString();
    }
}

class Bar {}

Hier crasht der Compiler mit einer java.util.NoSuchElementException. Der Compiler scheint nicht zu erkennen, dass Bar toString() von java.lang.Object erbt und somit aufrufbar sein sollte.

Wenn die Methode explizit überschrieben wird, kompiliert der Code:

import java.lang.String;

class Foo{
    Bar i = new Bar();
    toString(){
        return i.toString();
    }
}

class Bar {
    toString(){
        return "Hallo Welt!";
    }
}
Methoden die von `java.lang.Object` geerbt werden können nicht aufgerufen werden, wenn sich nicht überschrieben werden. ### Beispiel **Sourcecode** ```java import java.lang.String; class Foo{ Bar i = new Bar(); toString(){ return i.toString(); } } class Bar {} ``` Hier crasht der Compiler mit einer `java.util.NoSuchElementException`. Der Compiler scheint nicht zu erkennen, dass `Bar` `toString()` von `java.lang.Object` erbt und somit aufrufbar sein sollte. Wenn die Methode explizit überschrieben wird, kompiliert der Code: ```java import java.lang.String; class Foo{ Bar i = new Bar(); toString(){ return i.toString(); } } class Bar { toString(){ return "Hallo Welt!"; } } ```
dholle referenced this issue from a commit 2024-04-08 11:51:54 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: JavaTX/JavaCompilerCore#311
No description provided.