Kirill Vechera (sply) wrote,
Kirill Vechera
sply

Categories:

недоязык java

Ставим галочку: java хоть и в меньше мере, чем несколько лет назад, но все еще является недоязыком.

public class B extends A {
        B(String s) {
                String d = "B" + s;
                super(d);
        }
}

call to super must be first statement in constructor

И что же люди в таких случаях делают?
public class C extends A {
        C(String s) {
                super("C" + s);
        }
}


Или выносят реальный конструктор в какой-нибудь myConstructor(String s), который вызывают из конструктора и который при необходимости переопределяют и вызывают super.myConstructor в любом удобном месте. И судя по поиску, обсуждения нафига так это сделано ведутся уже 10 лет и заканчиваются аргументами, что это спасает от bad designed code. Ага, спасает.
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 26 comments