vendredi 30 janvier 2015
Seltsames Verhalten...
Posted on 04:49 by verona
Hallo :)
ich habe gerade beim Programmieren n kleines Phänomen. Ich poste mal ne "vereinfachte Version".
Wenn ich jetzt die main ausführe bekomme ich folgendes log:
changed test
check 1: not changed
check 2: not changed
Es ist als wenn das in folgender Reihenfolge ausgeführt wird:
1. String test = null;
2. [constructor -> test = "changed";]
3. test = "not changed";
Obwohl es meines Wissens nach so ablaufen müsste:
1. String test = "not changed"
2. [constructor -> test = "changed;]
Ist dieses Verhalten normal?
Es ist doch normalerweise z.b. sowas möglich:
Warum hier nicht? Hier würde ich ne NPE erhalten weil liste null ist.
ich habe gerade beim Programmieren n kleines Phänomen. Ich poste mal ne "vereinfachte Version".
Java Code:
- public abstract class TestAbstract1 {
- public TestAbstract1(){
- init();
- }
- protected abstract void init();
- }
Java Code:
- public abstract class TestAbstract2 extends TestAbstract1 {
- public TestAbstract2(){
- super();
- }
- protected void init() {
- test = "changed";
- }
- }
Java Code:
- public class TestClass extends TestAbstract2{
- public TestClass(){
- super();
- }
- }
Java Code:
- public class Test {
- TestClass t = new TestClass();
- }
- }
Wenn ich jetzt die main ausführe bekomme ich folgendes log:
Zitat:
changed test
check 1: not changed
check 2: not changed
Es ist als wenn das in folgender Reihenfolge ausgeführt wird:
1. String test = null;
2. [constructor -> test = "changed";]
3. test = "not changed";
Obwohl es meines Wissens nach so ablaufen müsste:
1. String test = "not changed"
2. [constructor -> test = "changed;]
Ist dieses Verhalten normal?
Es ist doch normalerweise z.b. sowas möglich:
Java Code:
- ArrayList<String> liste = new ArrayList<>();
- public Test2(){
- liste.add("test");
- }
Warum hier nicht? Hier würde ich ne NPE erhalten weil liste null ist.
Seltsames Verhalten...
Categories: Seltsames Verhalten...
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire