当前位置: 首页 > 知识库问答 >
问题:

如何在java后端工作?

李甫
2023-03-14

我是一名前端开发人员。后端开发人员离职了。因此,我还将处理后端部分。我没有任何后端开发经验。我正在分析后端代码。我有几个问题。我想澄清我的概念。

我已经附加了Java代码文件。

1-这些进口产品的用途是什么

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

2-为什么在声明每个变量之前先放置@JsonProperty?

3-为什么我们在少数几个方法中使用类名?例如:

public LedgerAccountRequestDto taxRateId(String taxRateId) {
  this.taxRateId = taxRateId;
  return this;
}

4-有什么用:

 @ApiModel(description = "transaction request")
 @Validated**

5-有什么用:

 @ApiModelProperty(required = true, value = "")
 @NotNull

6-hashCode()方法实际上在做什么?

 public int hashCode() {
   return Objects.hash(name, number, typeId, taxRateId);
}

请帮助我理解这些概念。非常感谢你

    package com.kin.account.api.ledgerAccount.model;

    import com.fasterxml.jackson.annotation.JsonProperty;
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;
    import org.springframework.validation.annotation.Validated;

    import javax.validation.constraints.NotNull;
    import java.util.Objects;

    /**
     * transaction request
     */
    @ApiModel(description = "transaction request")
    @Validated
    public class LedgerAccountRequestDto   {
      @JsonProperty("name")
      private String name = null;

      @JsonProperty("number")
      private String number = null;

      @JsonProperty("typeId")
      private String typeId = null;

      @JsonProperty("taxRateId")
      private String taxRateId = null;

      public LedgerAccountRequestDto name(String name) {
        this.name = name;
        return this;
      }

      /**
       * Get name
       * @return name
      **/
      @ApiModelProperty(required = true, value = "")
      @NotNull

      public String getName() {
        return name;
      }

      public void setName(String name) {
        this.name = name;
      }

      public LedgerAccountRequestDto number(String number) {
        this.number = number;
        return this;
      }

      /**
       * Get number
       * @return number
      **/
      @ApiModelProperty(required = true, value = "")
      @NotNull

      public String getNumber() {
        return number;
      }

      public void setNumber(String number) {
        this.number = number;
      }

      public LedgerAccountRequestDto typeId(String typeId) {
        this.typeId = typeId;
        return this;
      }

      /**
       * Get typeId
       * @return typeId
      **/
      @ApiModelProperty(required = true, value = "")
      @NotNull

      public String getTypeId() {
        return typeId;
      }

      public void setTypeId(String typeId) {
        this.typeId = typeId;
      }

      public LedgerAccountRequestDto taxRateId(String taxRateId) {
        this.taxRateId = taxRateId;
        return this;
      }

      /**
       * Get taxRateId
       * @return taxRateId
      **/
      @ApiModelProperty(required = true, value = "")
      @NotNull

      public String getTaxRateId() {
        return taxRateId;
      }

      public void setTaxRateId(String taxRateId) {
        this.taxRateId = taxRateId;
      }


      @Override
      public boolean equals(java.lang.Object o) {
        if (this == o) {
          return true;
        }
        if (o == null || getClass() != o.getClass()) {
          return false;
        }
        LedgerAccountRequestDto ledgerAccountRequestDto = (LedgerAccountRequestDto) o;
        return Objects.equals(this.name, ledgerAccountRequestDto.name) &&
            Objects.equals(this.number, ledgerAccountRequestDto.number) &&
            Objects.equals(this.typeId, ledgerAccountRequestDto.typeId) &&
            Objects.equals(this.taxRateId, ledgerAccountRequestDto.taxRateId);
      }

      @Override
      public int hashCode() {
        return Objects.hash(name, number, typeId, taxRateId);
      }

      @Override
      public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("class LedgerAccountRequestDto {\n");
        
        sb.append("    name: ").append(toIndentedString(name)).append("\n");
        sb.append("    number: ").append(toIndentedString(number)).append("\n");
        sb.append("    typeId: ").append(toIndentedString(typeId)).append("\n");
        sb.append("    taxRateId: ").append(toIndentedString(taxRateId)).append("\n");
        sb.append("}");
        return sb.toString();
      }

      /**
       * Convert the given object to string with each line indented by 4 spaces
       * (except the first line).
       */
      private String toIndentedString(java.lang.Object o) {
        if (o == null) {
          return "null";
        }
        return o.toString().replace("\n", "\n    ");
      }
    }

共有1个答案

陶鹏
2023-03-14
  1. 简而言之,import命令用于使用其他人已经编写的代码

在您的具体情况下:

// @JsonProperty is used to mark non-standard getter/setter method to be used with respect to json property.
import com.fasterxml.jackson.annotation.JsonProperty;
    
//look at https://docs.swagger.io/swagger-core/current/apidocs  /io/swagger/annotations/ApiModel.html
import io.swagger.annotations.ApiModel;

//look at https://docs.swagger.io/swagger-core/v1.5.0/apidocs/io/swagger/annotations/ApiModelProperty.html
import io.swagger.annotations.ApiModelProperty;

在共享代码段的方法中,方法名称之前的类名称意味着该方法返回类型为LedgerAccountRequestDto的对象

在您的代码片段中,以@开头的单词是注释,我建议您参考oracle文档或本教程:https://www.geeksforgeeks.org/annotations-in-java/

看答案4。。。原理是一样的

Java中的hashCode是一个函数,它在调用时返回对象的hashcode值。它返回由散列算法生成的整数或4字节值。在您的例子中,Objects.hashCode()是一个空安全方法,我们可以使用它来获取对象的hashcode。哈希码对于哈希表和equals()的正确实现是必要的。

JavaDoc中规定的哈希代码的一般合同是:

如果在应用程序的同一执行过程中,对于根据equals()方法相等的两个对象,每次调用未更改的对象时,返回的整数都相同,则返回相同的哈希代码。

虽然这不是一项要求,但不同的对象尽可能返回不同的哈希代码。

 类似资料:
  • 问题内容: 如何做和工作在后端?是否返回对象的引用?是否取决于?对象的?==操作员如何在后端工作。 和之间有什么区别? 问题答案: 后端的和如何工作? 假设尚未覆盖,则该方法只需调用即可。 的确切行为取决于JVM实现。(在最近的Hotspot JVM上的实际实现是相当聪明的,但是我离题了。) 是否返回对象的引用? 否。它返回int,而an int不能保存引用。 返回的整数可能与对象的(a)机器地址

  • 首先,我想道歉,如果这个问题是抽象的或不适合本站。我真的不知道还能去哪里问。 目前我已经在iOS和Android上开发了应用程序。它们在firebase中保留所有的状态,因此所有的内容都可以即时保存到firebase实时数据库中。 在创建用户之前,我手动填充实时数据库中的一些数据,这些数据应该存在以便应用程序能够运行,例如用户的配置数据。当我“完成”使用该应用程序时,我直接在Firebase控制台

  • 问题内容: 在我的数据库中,我可以说有5000多个用户,现在,如果我在主父节点中使用来获得多少人, 我知道getChildrenCount会返回一个带有父级内部子级数量的long,但这会如何影响性能? 几个月前,我制作了一个应用程序来管理用户,该应用程序比通过Web控制台更有效地管理用户,因为页面变得静态并且用户不断增长。 现在,我想知道是否每当我请求用户数量时,该应用程序就会循环遍历5000+个

  • 问题内容: 好的,我回来了。我将问题完全简化为三个简单的字段,但仍然使用addJSONData方法停留在同一行上。我已经坚持了好几天,无论我如何重新处理ajax调用,json字符串,等等等等……我都无法使它正常工作!手动添加一行数据时,我什至无法将其用作功能。任何人都可以发布可与ASP.NET和JSON一起使用的jqGrid的工作示例吗?您能否包括2-3个字段(最好是字符串,整数和日期?),我很高

  • 我对Java同步有一个疑问。我想知道如果我的类中有三个同步方法,一个线程在一个同步方法中获取锁,其他两个会被锁定吗?我问这个问题是因为我与以下语句混淆了。 当一个线程在一个对象的同步方法内部时,所有希望执行这个同步方法或该对象的任何其他同步方法的其他线程都必须等待。这个限制不适用于已经有锁并正在执行该对象的同步方法的线程。这样的方法可以调用该对象的其他同步方法而不会被阻塞。该对象的非同步方法当然可

  • 我熟悉传统的线程实现,但对Executorservice不太确定。我知道当使用executor服务处理线程时,它非常方便。但我对它的实现有点困惑。 假设我有一个父线程/主线程和一个最大线程池大小为10的执行器服务。现在,我只想在jms队列的大小小于1000的情况下对其执行特定任务。所以现在我可以考虑用两种方式来实现这一点。 案例1: 案例2: 我的理解是案例2不会跨越多个线程。我是否正确?或者有其