Junior
რა არის Lombok ბიბლიოთეკა და როგორ გამოიყენება Java-ში?
sobes.tech AI
პასუხი AI-სგან
Lombok යනු Java පන්තීන් සඳහා ස්වයංක්රීයව boilerplate කේතය ජනනය කරන පුස්තකාලයකි, එසේ වන්නේ getter, setter, constructors, equals(), hashCode() සහ toString() ක්රමයන් වැනි ඒවාය. මෙය annotations භාවිතා කිරීමෙන් ලබා ගත හැක.
භාවිත උදාහරණ:
@Getter/@Setter: පන්තියේ ක්ෂේත්ර සඳහා ස්වයංක්රීයව getter සහ setter ජනනය කිරීම.@NoArgsConstructor,@RequiredArgsConstructor,@AllArgsConstructor: විවිධ වර්ගයේ constructors ස්වයංක්රීයව ජනනය කිරීම.@ToString:toString()ක්රමය ජනනය කිරීම.@EqualsAndHashCode:equals()සහhashCode()ක්රමයන් ජනනය කිරීම.@Data: කෙටි කිරීමක් වන අතර,@Getter,@Setter,@ToString,@EqualsAndHashCodeසහ@RequiredArgsConstructorඑකට එකතු කරයි.@Builder: Builder pattern ක්රමය ක්රියාත්මක කිරීම.@Value: අසංවර්ධිත (immutable)@Dataවර්ගය (ක්ෂේත්රfinal, setter අයින් කරයි).
Lombok වාසි:
- කේත ප්රමාණය අඩු කිරීම.
- කියවීමේ පහසුව.
- අතිරේක දෝෂ අවස්ථා අඩු කිරීම, අතිරේක boilerplate කේතය අතින් ලිවීමේදී.
Lombok අඩුපාඩු:
- IDE සඳහා නිවැරදි සහයෝගිතාව සඳහා සැකසුම් අවශ්යයි.
- පුස්තකාලය මත අනුබද්ධතාව, එය මාරු කිරීම හෝ අතහැරීම අනාගතයේදී අපහසුතා ඇති කළ හැක.
- ජනිත කේතයේ දෝෂ සොයා බැලීම අඩු ආකර්ෂණීය විය හැක.
Lombok භාවිතා කර ඇති කේත උදාහරණ:
// import lombok.Data;
// @Data
// public class User {
// private Long id;
// private String name;
// private int age;
// }
Lombok නොමැතිව, මෙම පන්තිය මෙහෙම පෙනේ:
// public class User {
// private Long id;
// private String name;
// private int age;
// public User() {
// }
// public User(Long id, String name, int age) {
// this.id = id;
// this.name = name;
// this.age = age;
// }
// public Long getId() {
// return id;
// }
// public void setId(Long id) {
// this.id = id;
// }
// 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;
// User user = (User) o;
// if (age != user.age) return false;
// if (!id.equals(user.id)) return false;
// return name.equals(user.name);
// }
// @Override
// public int hashCode() {
// int result = id.hashCode();
// result = 31 * result + name.hashCode();
// result = 31 * result + age;
// return result;
// }
// @Override
// public String toString() {
// return "User{" +
// "id=" + id +
// ", name='" + name + '\'' +
// ", age=" + age +
// '}';
// }
// }