当前位置: 首页 > wzjs >正文

看动漫是怎么做视频网站2021百度seo

看动漫是怎么做视频网站,2021百度seo,摄影网站网络促销方式,网站制作一般要几天文章目录 Lombok1.介绍2.主要注解2.1如何使用 Lombok2.1.1添加依赖2.1.2 使用Lombok注解2.1.3Lombok的其他常用注解ValueBuilderGoF23种设计模式之一:建造模式使用Builder注解自动生成建造模式的代码 SingularSlf4j使用选择合适的注解 Lombok 1.介绍 Lombok 是一个…

文章目录

  • Lombok
    • 1.介绍
    • 2.主要注解
    • 2.1如何使用 Lombok
      • 2.1.1添加依赖
      • 2.1.2 使用Lombok注解
      • 2.1.3Lombok的其他常用注解
        • @Value
        • @Builder
          • GoF23种设计模式之一:建造模式
          • 使用@Builder注解自动生成建造模式的代码
        • @Singular
        • @Slf4j
          • 使用
          • 选择合适的注解

Lombok

1.介绍

Lombok 是一个 Java 库,它可以通过注解的方式减少 Java 代码中的样板代码。Lombok 自动为你生成构造函数、getter、setter、equals、hashCode、toString 方法等,从而避免了手动编写这些重复性的代码。这不仅减少了出错的机会,还让代码看起来更加简洁。

Lombok是一个编译阶段的库,能够帮我们自动补充代码,在Java程序运行阶段并不起作用。

2.主要注解

@Data:

  • 等价于 @ToString, @EqualsAndHashCode, @Getter,@Setter,@RequiredArgsConstructor.
  • 用于生成:必要参数的构造方法、getter、setter、toString、equals 和 hashcode 方法

@Getter / @Setter:

  • 分别用于生成所有的 getter 和 setter 方法
  • 可以作用于整个类,也可以作用于特定的字段

@NoArgsConstructor:

  • 生成一个无参构造方法

@AllArgsConstructor:

  • 生成一个包含所有实例变量的构造器

@RequiredArgsConstructor:

  • 生成包含所有被 final 修饰符修饰的实例变量的构造方法
  • 如果没有final的实例变量,则自动生成无参数构造方法

@ToString / @EqualsAndHashCode:

  • 用于生成 toString 和 equals/hashCode 方法
  • 这两个注解都有exclude属性,通过这个属性可以定制toString、hashCode、equals方法

2.1如何使用 Lombok

2.1.1添加依赖

在 Maven 的 pom.xml 文件中添加 Lombok 依赖:

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.36</version>
</dependency>

2.1.2 使用Lombok注解

在 Java 类中使用 Lombok 提供的注解

import lombok.Data;@Data
public class User {private String name;
}
public class Test {public static void main(String[] args) {User user = new User();user.setName("jackson");System.out.println(user.getName());System.out.println(user.toString());System.out.println(user.hashCode());User user2 = new User();user2.setName("jackson");System.out.println(user.equals(user2));}
}

执行结果如下:
在这里插入图片描述

注:Lombok只能帮助我们生成无参数构造方法和全参数构造方法,其他定制参数的构造方法无法生成。

2.1.3Lombok的其他常用注解

@Value

该注解会给所有属性添加final,给所有属性提供getter方法,自动生成toString、hashCode、equals
通过这个注解可以创建不可变对象。

@Value
public class Customer {Long id;String name;String password;
}

Test

public class CustomerTest {public static void main(String[] args) {Customer c1 = new Customer(1L, "jackson", "123");System.out.println(c1);System.out.println(c1.getId());System.out.println(c1.getName());System.out.println(c1.getPassword());System.out.println(c1.hashCode());Customer c2 = new Customer(1L, "jackson", "123");System.out.println(c1.equals(c2));}
}

执行结果如下:
在这里插入图片描述

@Builder
GoF23种设计模式之一:建造模式

建造模式(Builder Pattern)属于创建型设计模式。

用于解决对象创建时参数过多的问题。

它通过将对象的构造过程与其表示分离,使得构造过程可以逐步完成,而不是一次性提供所有参数。

建造模式的主要目的是让对象的创建过程更加清晰、灵活和可控。
简而言之,建造模式用于:

  1. 简化构造过程:通过逐步构造对象,避免构造函数参数过多。
  2. 提高可读性和可维护性:让构造过程更加清晰和有序。
  3. 增强灵活性:允许按需配置对象的不同部分。
    这样可以更方便地创建复杂对象,并且使得代码更加易于理解和维护。

建造模式的代码如下


// 建造模式
public class Person {// 属性private final String name;private final int age;private final String email;// 私有的全参数构造方法private Person(String name, int age, String email) {this.name = name;this.age = age;this.email = email;}public String getName() {return name;}public int getAge() {return age;}public String getEmail() {return email;}public static PersonBuilder builder() {return new PersonBuilder();}// 静态内部类public static class PersonBuilder {private String name;private int age;private String email;public PersonBuilder name(String name) {this.name = name;return this;}public PersonBuilder age(int age) {this.age = age;return this;}public PersonBuilder email(String email) {this.email = email;return this;}// 建造对象的核心方法public Person build() {return new Person(name, age, email);}}@Overridepublic String toString() {return "Person{" + "name='" + name + '\'' + ", age=" + age + ", email='" + email + '\'' + '}';}public static void main(String[] args) {Person person = Person.builder().name("jackson").age(20).email("jackson@123.com").build();System.out.println(person);}
}

执行结果如下:
在这里插入图片描述

使用@Builder注解自动生成建造模式的代码
@Data
@Builder
// 建造模式
public class Person {// 属性private String name;private int age;private String email;public static void main(String[] args) {Person person = Person.builder().name("jackson").age(20).email("jackson@123.com").build();System.out.println(person);}
}
@Singular

@Singular注解是辅助@Builder注解的。

当被建造的对象的属性是一个集合,这个集合属性使用@Singular注解进行标注的话,可以连续调用集合属性对应的方法完成多个元素的添加。

如果没有这个注解,则无法连续调用方法完成多个元素的添加。代码如下:


@Data
@Builder
// 建造模式
public class Person {// 属性private final String name;private final int age;private final String email;// Singular翻译为:单数。表示一条一条添加@Singular("addPhone")private final List<String> phones;public static void main(String[] args) {Person person = Person.builder().name("jackson").age(20).email("jackson@123.com").addPhone("15222020214").addPhone("14875421424").addPhone("16855241424").build();System.out.println(person);}
}

执行结果如下:
在这里插入图片描述

@Slf4j

Lombok 支持多种日志框架的注解,可以根据你使用的日志框架选择合适的注解。以下是 Lombok 提供的部分日志注解及其对应的日志框架:

  1. @Log4j:
    自动生成一个 org.apache.log4j.Logger 对象。
    适用于 Apache Log4j 1.x 版本。
  2. @Slf4j:
    自动生成一个 org.slf4j.Logger 对象。
    适用于 SLF4J(Simple Logging Facade for Java),这是一种日志门面,可以与多种实际的日志框架(如 Logback、Log4j 等)集成。
  3. @Log4j2:
    自动生成一个 org.apache.logging.log4j.Logger 对象。
    适用于 Apache Log4j 2.x 版本。
使用

假设我们有一个类 ExampleClass,并且我们想要使用 SLF4J 作为日志框架,我们可以这样使用 @Slf4j 注解:

@Slf4j
public class UserService {public void login(){log.info("登录验证...");}// 测试public static void main(String[] args) {UserService userService = new UserService();userService.login();}
}

在这个例子中,log 是一个静态成员变量,表示一个 org.slf4j.Logger 对象。Lombok 自动生成了这个日志对象,并且你可以直接使用它来进行日志记录。

选择合适的注解

选择哪个注解取决于你使用的日志框架。例如:
● 如果你使用的是 SLF4J,可以选择 @Slf4j。
● 如果你使用的是 Log4j 1.x,可以选择 @Log4j。
● 如果你使用的是 Log4j 2.x,可以选择 @Log4j2。

http://www.dtcms.com/wzjs/396190.html

相关文章:

  • 深圳做网站de公司搜狗seo
  • 泉州哪个公司网站做的好营业推广促销方式有哪些
  • 日本政府网站建设经验阿里云搜索引擎入口
  • 公司名字大全免费版seo工作流程
  • 漳州城乡住房建设部网站厦门seo外包服务
  • 销售方案网站网络推广怎么找客户
  • 艺术品网站模板seo排名优化推广
  • 南宁网站建设公司排名汕头网站建设开发
  • 如何提高网站的点击量seo网络优化
  • 网站开发增值税税率6%百度导航如何设置公司地址
  • 上海自贸区注册公司费用seo搜索优化服务
  • wordpress顶部菜单seo计费系统登录
  • 专业网站制作价格友情链接的形式有哪些
  • 网站建设的目入图片什么是搜索引擎销售
  • 宁波网站运营优化系统专业培训
  • 外卖网站那家做的好人民日报最新头条10条
  • 如何做正规电影网站今晚比分足球预测
  • 网站虚拟主机可以做伦理片吗重大新闻事件
  • 微信公众号 网站开发交换链接适用于哪些网站
  • 自己做网站不用WordPress品牌推广活动方案
  • 苏州企业建设网站价格百度竞价排名利弊
  • 做网站用到的java技术企业seo案例
  • 做网站常用图标网上企业推广
  • 福田商城网站制作百度一下百度主页度
  • 永嘉网站建设几怎样做seo搜索引擎优化
  • 站长之家网址ip查询关键词优化报价怎么样
  • 外贸手机商城网站建设 深圳互联网广告营销是什么
  • 哈尔滨网站建设价格专业网站优化外包
  • 百度怎么做网站排名宁波seo排名优化
  • 南宁有本地租房做网站吗中国免费网站服务器下载