Boiling out Boilerplate
Boilerplate
Boilerplate
@interface Foo : NSObject {
Bar *_bar;
}
@property (retain) Bar *bar;
@end
@implementation Foo
@synthesize bar = _bar;
- (void)dealloc {
[_bar release];
[super dealloc];
}
@end
149 chars
Boilerplate
public class Foo {
private Bar bar;
public Bar getBar() {
return bar;
}
public void setBar(Bar bar) {
this.bar = bar;
}
}
98 chars
Boilerplate
public class Foo {
private Bar bar;
public Bar getBar() {
return bar;
}
public void setBar(Bar bar) {
this.bar = bar;
}
}
98 chars
Boilerplate
public final class Foo { private final Bar bar; public Bar getBar() { return bar; } public Foo(Bar bar) { this.bar = bar; } }
101 chars
Boilerplate
public final class Foo {
private final Bar bar;
public Bar getBar() {
return bar;
}
public Foo(Bar bar) {
this.bar = bar;
}
}
101 chars
JSR 269
@AutoValue
public abstract class Foo {
public abstract Bar getBar();
public static Foo create(Bar bar) {
return new AutoValue_Foo(bar);
}
}
119 chars
Boilerplate
public final class Foo {
private final Bar bar;
public Bar getBar() {
return bar;
}
public Foo(Bar bar) {
this.bar = bar;
}
}
101 chars
Lombok
@Value
public class Foo {
Bar bar;
}
29 chars
Lombok
@Value public class Foo { Bar bar; }
29 chars
Groovy
class Foo {
Bar bar
}
16 chars
Groovy
@Immutable
class Foo {
Bar bar
}
26 chars
Talk is cheap,
show me the code!
Thank You && Q || A
Boiling out Boilerplate / DroidCon Turin 2015
By Maciej Górski
Boiling out Boilerplate / DroidCon Turin 2015
- 2,291