www359956085
2018-06-11 07:41
采纳率: 50%
浏览 5.7k
已采纳

org.springframework.data.domain包中 PageRequest源码的疑惑

先贴上部分源码

/** @deprecated */
    @Deprecated
    public PageRequest(int page, int size) {
        this(page, size, Sort.unsorted());
    }

    /** @deprecated */
    @Deprecated
    public PageRequest(int page, int size, Direction direction, String... properties) {
        this(page, size, Sort.by(direction, properties));
    }

    /** @deprecated */
    @Deprecated
    public PageRequest(int page, int size, Sort sort) {
        super(page, size);
        this.sort = sort;
    }

    public static PageRequest of(int page, int size) {
        return of(page, size, Sort.unsorted());
    }

    public static PageRequest of(int page, int size, Sort sort) {
        return new PageRequest(page, size, sort);
    }

    public static PageRequest of(int page, int size, Direction direction, String... properties) {
        return of(page, size, Sort.by(direction, properties));
    }

作者将构造方法标记为废弃,希望我们通过该类中的静态方法of(...)去创建实例。
这样做的目的或者好处是什么

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 哨兵丶 2018-06-12 05:48
    已采纳

    利用构造方法,调用处写死了必须使用new来创建新的对象,对象的控制权在调用处,而调用of方法则把生成对象的控制权保留在了PageRequest类中,后期如果需要扩展则在PageRequest类中进行扩展即可

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • qq_38552022 2018-06-11 07:44
    @Deprecated
    public PageRequest(int page, int size) {
        this(page, size, Sort.unsorted());
    }
    
    /** @deprecated */
    @Deprecated
    public PageRequest(int page, int size, Direction direction, String... properties) {
        this(page, size, Sort.by(direction, properties));
    }
    
    /** @deprecated */
    @Deprecated
    public PageRequest(int page, int size, Sort sort) {
        super(page, size);
        this.sort = sort;
    }
    
    public static PageRequest of(int page, int size) {
        return of(page, size, Sort.unsorted());
    }
    
    public static PageRequest of(int page, int size, Sort sort) {
        return new PageRequest(page, size, sort);
    }
    
    public static PageRequest of(int page, int size, Direction direction, String... properties) {
        return of(page, size, Sort.by(direction, properties));
    }
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题