ืืขืจืืช. ืืืง 1 - ืงืฆืช ืืฉืขืื
ืืืืง ืื, ืืืืืชื ืืืขืช ืืกืคืจืืืช Lombok, ืืืืืื ืฉืืื ื ืฆืืื ืืืืขื ืฉื ืืขืจืืช ืงืื ืืงืืจ. ืืชืืืืก ืืืขืจืืช ืืืื ืจืืฆื ืืืืืจ ืืื.
ืคืขื, ืืื ืืชืื ืช ื'ืืืื. ืื ืืื ืืื ืืชืื ืงืื ืจืืื, ืืืฉื, ืื:
ืืฉืื ืื, ืื ื ืืงืืื ืฉืืชื, ืืงืืจื ืฉืื, ืืชืขื ืืื ืช, ืื ืื ืืืื ืืืื ืืงืืื ืงืฆืจื ืขื ืงืืฉืืจืื ืืคืจืืื. Lombok ืื ืืืคืฉืจืช ืื ืืืชืืื ืืืฉืืช ืืช ืืฆืืจืช ืืงืื, ืืืฉื, ืื ืชืืื ืืฉ ืฆืืจื ืืื ื-Gutters ื-seters, ืื ืฉืืืื ืชืฆืืจื ืืืืืจืืชื ืืืจ ืืื ืืืฆืืจ ืงืื Hash. ืืื ืืืฉืื ืืืช, ืืฉ ืืขืจืืช ื ืคืจืืืช (ืื ื ืืืฉื ืฉืจืืืช ืืื ืื ืืฆืืจืื ืชืืืืจ): @Getter/@Setter, @ToString, @EqualsAndHashCode, @NoArgsConstructor, @RequiredArgsConstructor, ื-@AllArgsConstructor, @Log ืืื ืื ืืื ืืจืื ืึฐืฉืืึผืชึธืฃ. ืืช ืืกื ืืืื ื ืืชื ืืจืืืช ืืื
. ืฉืืื ืื ืืืืืื ื-var ื-val. ืื ืืืืจ ืฉืืชื ืืืื ืืืชืื ืงืื ืื:

package lombok;
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public Person() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
if (age != person.age) return false;
return name != null ? name.equals(person.name) : person.name == null;
}
@Override
public int hashCode() {
int result = name != null ? name.hashCode() : 0;
result = 31 * result + age;
return result;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
ืืืืงื ืื ืืื ืจืืืื - ืจืง 2 ืฉืืืช (ืืืจื ืืื, ืืคืขืืื ืืฉ ืืืชืจ ื-10-15 ืฉืืืช). ืืืืื, ืื ืื ืืืื ืืืืืืฆืจ ื-IDE. ืืื ืืขืืืื, ืื ืชืืคืก ืืช ืืงืืื. ืื ืืฉ 15-20 ืฉืืืช, ืื ืืื ืืื ืืงืืง ืืืืจืื, ืืืืืจืื, ืงืื ืกืืจืืงืืืจืื... ืืื ืื ืืื, ืืื ืฉืืืืช ืืืจืืช, ืืืชื ื ืจืืืช ืืขืื, ืขืืืืืช ืืืืช ืืงืืืช ืืืืืื. ืืื ื ืขืืืจ ืืืชืื ืช ืืื ืืืชืื ืืืจ ืืืชืจ ืืคืืืช? ืืืืืืง. ืืืืืืช ืืื ืืืฉ ืืืชื. ืื ื ืืืชื ืืืืงื, ืืื ืขืืฉืื ืื ืื ื ืืฉืชืืฉืื ืืืืืืืง:
package lombok;
@Data
public class Person {
private String name;
private int age;
}
ืื ืืื. ืืื ืื ืื? ืื ืขืืฉื ืืขืจืช @Data ? ืืืืื ืืงืืืคืืืฆืื, ืืขืจื ืื ืืืืฆืจืช ืืืืืจืื/ืืืืืจืื ืขืืืจ ืื ืืฉืืืช, ืืืขืงืคืช ืืช toString(), equals() ื-hashCode() ืืืชืื ืืืืืื ืกืื ืืจืืืื. ืืชื ืืืื ืืืชืงืื ืืช ืืชืืกืฃ ื-IDE. ืื ืืจืื ืืช ืื ืืฉืืืืช ืฉืขืืืื ืื ื ืืฆืจื. 
package lombok;
import lombok.experimental.var;
@Data
public class Person {
private String name;
private int age;
public static void main(String[] args) {
var person = new Person();
person.setAge(22);
System.out.println(person);
}
}
ืืื ืื ื ืืืฅ? ืืืืืื, ืืฉ ืื ื ืืืืงื RandomAccessFileChannel. ืืื ืฉื ืจืฆื ืืืชืื ืงืื ืืื?
RandomAccessFileChannel channel = new RandomAccessFileChannel();
ืื ืื ืื ื ืืืืืื ืืขืฉืืช ืืช ืื?
var channel2 = new RandomAccessFileChannel();
ืืืขืชื ืื ืื ืชืืื ืืงืืื. ืืืืืื, ืืฉ ืื ื ืฉืืื ืจืขื ืฉืืืืืจื ืืคื ืจืขื:
public static Map<List<Set<Integer>>, Set<List<String>>> evilMap() {
return new HashMap<>();
}
ืื ืืชื ืงืืจื ืืื ืืื:
Map<List<Set<Integer>>, Set<List<String>>> listSetMap = evilMap();
ืืื ืคืืืช ืื ืืืชืจ ืืจืืจ ืขื ืื ืื ืื ื ืขืืืืื. ืื ืืฉืืื ืืื ืืื:
var listSetMap = evilMap();
ืื ืจืง ืืฉืื ืืืืข ืื evilMap() ืืืืืจ ืืฉื, ืืขื ืฉืื ืืกืชืืืื ืขื ืืฉืืื ืขืฆืื, ืืื ื ืืืืข. ืืื ืืืชืจืืฆืฅ ืืื ืงืืฆื ืืืงืืจ? ืืืืคื ืืืื, ืืชื ืฆืจืื ืืืืืช ืืืืจ ืขื ืื. ืขื ืฃ ื ืืกืืื ื: ืืื ืื ื ืจืืฆื ืืืืืืจ ืืช ืืืขืจื @UtilityClass . ืื ืืืฆืจ ืื ืื ืคืจืื ืฉืืืจืง ืืจืื (ืื ืืืืื ืงืื ืืช ืืืืืืืืืช ืื ืืฉืชืืฉืืช ืืืฉืชืงืคืืช ืืื ืืืชืขืจื ืฉื). ืืื ืืืื ืืคื ืืชืืืืช ืืฉืืขืืจ - ืื ืืืืจ ืื ื ืฉืืฉ ืฉืืืืช ืฉืืจืืช. ืืืขืจื @Delegate ืืืืฉืืช ืืช ืืคืืก ืืืืฆืื. ื ื ืื ืฉืืฉ ืื ืืืืงื ืฉืืืฆืืื ืืฉืื ืืืืืงื ืืืจืช, ืืืชื ืืืฆืข ืฉืื ืืืื ืจืง ืืืืง ืืืฉืืืืช - ืืืขืจื ืืื ืชืืกืื ืืื ืฉืืคืื ืฉืืืืช ืืืื ืืขืงืื ืืืจืืื. ืื ืชืกืืจ ืื ืชืืกืืฃ ืฉืืื, ืืขืจื ืื ืชืืืื. ืขื ืฃ ืืขืจืืช ื ืืกืื
GitHub
ืืืชืจ ืืจืฉืื
ืขื ืื ืช ืฉื-IDE ืืขืืื ืืื ืฉืฆืจืื ืขื lombok ืืื ืืืืืฉ ืฉืืืืช ืืื ืงืืืืืช, ืขืืื ืืืชืงืื ืืช ืืชืืกืฃ. ืืืชืจ ืืจืฉืื ืืฉ ืงืืข ืืืืจืืช
ืฉืื ืืชื ืืืื ืืจืืืช ืืืฆื ืืืืจ ืืช ืืชืืกืฃ ืขืืืจ ืื IDE. ืืคื ืฉืืชื ืืืื ืืจืืืช, Lombok ืคืืคืืืจื:>5,000 ืืืืืื ื>1,000 ืืืืืืช. ืืืืื ืืฉืชืืฉ ืืืืืืืง ืืืืชืืชืื. ืื ืืฉ ืื ืืืื ืืคืจืืืงื ืฉืื, ืชืกืชืื - ืืืชืื ืฉืืื ืืฉื ืืช ืืืืืืง ืืื ืืืืขืชื.
GO TO FULL VERSION