CodeGym /ื‘ืœื•ื’ Java /Random-HE /ื”ืขืจื•ืช. ื—ืœืง 2. ืœื•ืžื‘ื•ืง
John Squirrels
ืจึธืžึธื”
San Francisco

ื”ืขืจื•ืช. ื—ืœืง 2. ืœื•ืžื‘ื•ืง

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”
ื”ืขืจื•ืช. ื—ืœืง 1 - ืงืฆืช ืžืฉืขืžื ื‘ื—ืœืง ื–ื”, ื”ื—ืœื˜ืชื™ ืœื’ืขืช ื‘ืกืคืจื™ื™ืช Lombok, ืžื›ื™ื•ื•ืŸ ืฉื”ื™ื ื ืฆื™ื’ื” ื™ื“ื•ืขื” ืฉืœ ื”ืขืจื•ืช ืงื•ื“ ืžืงื•ืจ. ืืชื™ื™ื—ืก ืœื”ืขืจื•ืช ื‘ื–ืžืŸ ืจื™ืฆื” ื‘ืžืืžืจ ื”ื‘ื. ื”ืขืจื•ืช.  ื—ืœืง 2. ืœื•ืžื‘ื•ืง - 1ืคืขื, ื”ื™ื” ืžืชื›ื ืช ื’'ืื•ื•ื”. ื›ืœ ื™ื•ื ื”ื™ื ื›ืชื‘ื” ืงื•ื“ ืจื’ื™ืœ, ืœืžืฉืœ, ื›ืš:
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. ื–ื” ื™ืจืื” ืืช ื›ืœ ื”ืฉื™ื˜ื•ืช ืฉืขื“ื™ื™ืŸ ืœื ื ื•ืฆืจื•. ื”ืขืจื•ืช.  ื—ืœืง 2. ืœื•ืžื‘ื•ืง - 2ื‘ืฉืœื‘ ื–ื”, ืื ื™ ืžืงื•ื•ื” ืฉืืชื”, ื”ืงื•ืจื ืฉืœื™, ื”ืชืขื ื™ื™ื ืช, ื›ื™ ืžื” ืœื”ืœืŸ ื™ื”ื™ื” ื”ืงื“ืžื” ืงืฆืจื” ืขื ืงื™ืฉื•ืจื™ื ืœืคืจื˜ื™ื. Lombok ื’ื ืžืืคืฉืจืช ืœืš ืœื”ืชืื™ื ืื™ืฉื™ืช ืืช ื™ืฆื™ืจืช ื”ืงื•ื“, ืœืžืฉืœ, ืœื ืชืžื™ื“ ื™ืฉ ืฆื•ืจืš ื‘ื›ืœ ื”-Gutters ื•-seters, ืื• ืฉืื•ืœื™ ืชืฆื˜ืจืš ืืœื’ื•ืจื™ืชื ืื—ืจ ื›ื“ื™ ืœื™ืฆื•ืจ ืงื•ื“ Hash. ื›ื“ื™ ืœื”ืฉื™ื’ ื–ืืช, ื™ืฉ ื”ืขืจื•ืช ื ืคืจื“ื•ืช (ืื ื™ ื—ื•ืฉื‘ ืฉืจื‘ื•ืช ืžื”ืŸ ืœื ื™ืฆื˜ืจื›ื• ืชื™ืื•ืจ): @Getter/@Setter, @ToString, @EqualsAndHashCode, @NoArgsConstructor, @RequiredArgsConstructor, ื•-@AllArgsConstructor, @Log ืืœื• ื”ื ื”ื›ื™ ื”ืจื‘ื” ืžึฐืฉืื•ึผืชึธืฃ. ืืช ื”ืกื˜ ื›ื•ืœื• ื ื™ืชืŸ ืœืจืื•ืช ื›ืืŸ . ืฉื™ืžื• ืœื‘ ื‘ืžื™ื•ื—ื“ ืœ-var ื•-val. ื–ื” ืื•ืžืจ ืฉืืชื” ื™ื›ื•ืœ ืœื›ืชื•ื‘ ืงื•ื“ ื›ืš:
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 ืžื–ืœื’ื•ืช. ื”ืื‘ื™ื‘ ืžืฉืชืžืฉ ื‘ืœื•ืžื‘ื•ืง ื‘ื›ื™ืชื•ืชื™ื•. ืื ื™ืฉ ืœืš ืื‘ื™ื‘ ื‘ืคืจื•ื™ืงื˜ ืฉืœืš, ืชืกืชื›ืœ - ื™ื™ืชื›ืŸ ืฉื”ื•ื ืžืฉืš ืืช ืœื•ืžื‘ื•ืง ืœืœื ื™ื“ื™ืขืชืš.
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION