<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                步驟如下: **1. 創建實體類和被映射的類** ```java /** * 實體類 * 必須提供Getter和Setter方法 */ @Data public class User { private Integer id; private String name; private Date createTime; } /** * 被映射的類 * 必須提供Setter和Getter方法 * 與實體類User的屬性一致 */ @Data public class UserDto01 { private Integer id; private String name; private Date createTime; } /** * 被映射的類 * 必須提供Setter和Getter方法 * 比實體類User少了一個屬性 */ @Data public class UserDto02 { private Integer id; private String name; } ``` **2. 創建映射接口** ```java import com.mapstruct.domain.User; import com.mapstruct.dto.UserDto01; import com.mapstruct.dto.UserDto02; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; @Mapper public interface UserMapper { /** 成員變量INSTANCE,目的是讓客戶端可以訪問 Mapper 接口的實現 **/ UserMapper INSTANCE = Mappers.getMapper(UserMapper.class); /** User映射到UserDto01 **/ UserDto01 toDto01(User source); /** UserDto01映射到User **/ User toUser01(UserDto01 source); /** User映射到UserDto02 **/ UserDto02 toDto02(User source); /** UserDto02映射到User **/ User toUser02(UserDto02 source); } ``` **3. 測試** ```java public static void main(String[] args) { User user = new User(); user.setId(1001); user.setName("張三"); user.setCreateTime(new Date()); //User-->UserDto01 UserDto01 userDto01 = UserMapper.INSTANCE.toDto01(user); //User-->UserDto02 UserDto02 userDto02 = UserMapper.INSTANCE.toDto02(user); //UserDto01-->User User user01 = UserMapper.INSTANCE.toUser01(userDto01); //UserDto02-->User User user02 = UserMapper.INSTANCE.toUser02(userDto02); System.out.println("User:" + user.toString()); System.out.println("User-->UserDto01:" + userDto01); System.out.println("User-->UserDto02:" + userDto02); System.out.println("UserDto01-->User:" + user01); System.out.println("UserDto02-->User:" + user02); } ``` 輸出如下: ``` User:User(id=1001, name=張三, createTime=Thu Oct 14 17:26:49 CST 2021) User-->UserDto01:UserDto01(id=1001, name=張三, createTime=Thu Oct 14 17:26:49 CST 2021) User-->UserDto02:UserDto02(id=1001, name=張三) UserDto01-->User:User(id=1001, name=張三, createTime=Thu Oct 14 17:26:49 CST 2021) UserDto02-->User:User(id=1001, name=張三, createTime=null) ``` **4. 查看映射接口被Mapstruct編譯后的代碼** 可以發現MapStruct實現`UserMapper`接口,并重寫了接口中的方法進行屬性賦值。 ```java public class UserMapperImpl implements UserMapper { public UserMapperImpl() { } public UserDto01 toDto01(User source) { if (source == null) { return null; } else { // 對UserDto01的屬性賦值 UserDto01 userDto01 = new UserDto01(); userDto01.setId(source.getId()); userDto01.setName(source.getName()); userDto01.setCreateTime(source.getCreateTime()); return userDto01; } } public User toUser01(UserDto01 source) { if (source == null) { return null; } else { // 對User的屬性賦值 User user = new User(); user.setId(source.getId()); user.setName(source.getName()); user.setCreateTime(source.getCreateTime()); return user; } } public UserDto02 toDto02(User source) { if (source == null) { return null; } else { // 對UserDto02的屬性賦值 UserDto02 userDto02 = new UserDto02(); userDto02.setId(source.getId()); userDto02.setName(source.getName()); return userDto02; } } public User toUser02(UserDto02 source) { if (source == null) { return null; } else { // 對Use的屬性賦值 User user = new User(); user.setId(source.getId()); user.setName(source.getName()); return user; } } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看