/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.function.Function;

class A{
    private final int x;
    
    private A(int x) {
        this.x=x;
    }

    public int getX() { return x; }
    
    public static A build(Function<Builder, Builder> builderFiller) {
        Builder builder = new Builder();
        builder = builderFiller.apply(builder);
        return builder.build();
    }

    public static class Builder{
        private int x;
        
        private Builder() {}
        
        public Builder withX(int value){
            this.x = value;
            return this;
        }
        
        private A build(){
            return new A(x);
        }
    }
}

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{
		A a = A.build(builder -> builder.withX(11));
		System.out.println(a.getX());
	}
}