I have a set of classes `A1` to `An` of such form :

```
public class A1{

    //constructor method
    public A1(...){...}
    //init method
    public void init(){...}
    //some class specific method
    ...
}

```

I would like to ensure that method `init` is always called after the class initialization (possibly a compiler error or some sort of warning if not used) .

Something like:

```
A1 a1=new A1(...);
//some other code that may relate to a1 (e.g. changing default global values)
a1.init(); // <-- if not used some bad things happens.

```

The only limitation is:

**that I cannot use the `init()` method within constructor**

So is there any way of doing it? (except calling the `init()` in constructor of course).