<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【對(duì)線面試官】今天來聊聊Java泛型

          共 1810字,需瀏覽 4分鐘

           ·

          2020-12-26 07:26

          public?interface?JpaRepository<T,?ID>?extends?PagingAndSortingRepository<T,?ID>,?QueryByExampleExecutor<T>?{

          ?List?findAll();

          ?List?findAll(Sort?sort);

          ?List?findAllById(Iterable?ids);

          ??List?saveAll(Iterable?entities);

          ?void?flush();

          ??S?saveAndFlush(S?entity);

          ?void?deleteInBatch(Iterable?entities);

          ?void?deleteAllInBatch();

          ?T?getOne(ID?id);

          ?@Override
          ??List?findAll(Example?example);

          ?@Override
          ??List?findAll(Example?example,?Sort?sort);
          }
          //?傳入?需要group?by?和?sum?的字段名
          public?cacheMap(List?groupByKeys,?List?sumValues)?{
          ??this.groupByKeys?=?groupByKeys;
          ??this.sumValues?=?sumValues;
          }

          private?void?excute(T?e)?{
          ??
          ??//?從pojo?取出需要group?by?的字段?list
          ??List?key?=?buildPrimaryKey(e);
          ??
          ??//?primaryMap?是存儲(chǔ)結(jié)果的Map
          ??T?value?=?primaryMap.get(key);
          ??
          ??//?如果從存儲(chǔ)結(jié)果找到有相應(yīng)記錄
          ??if?(value?!=?null)?{
          ????for?(String?elem?:?sumValues)?{
          ??????//?反射獲取對(duì)應(yīng)的字段,做累加處理
          ??????Field?field?=?getDeclaredField(elem,?e);
          ??????if?(field.get(e)?instanceof?Integer)?{
          ????????field.set(value,?(Integer)?field.get(e)?+?(Integer)?field.get(value));
          ??????}?else?if?(field.get(e)?instanceof?Long)?{
          ????????field.set(value,?(Long)?field.get(e)?+?(Long)?field.get(value));
          ??????}?else?{
          ????????throw?new?RuntimeException("類型異常,請(qǐng)?zhí)幚懋惓?);
          ??????}
          ????}
          ????
          ????//?處理時(shí)間記錄
          ????Field?field?=?getDeclaredField("updated",?value);
          ????if?(null?!=?field)?{
          ??????field.set(value,?DateTimeUtils.getCurrentTime());
          ????}
          ??}?else?{
          ????//?group?by?字段?第一次進(jìn)來
          ????try?{
          ??????primaryMap.put(key,?Tclone(e));
          ??????createdMap.put(key,?DateTimeUtils.getCurrentTime());
          ????}catch?(Exception?ex)?{
          ??????log.info("first?put?value?error?{}"?,?e);
          ????}
          ??}
          }

          文章以純面試的角度去講解,所以有很多的細(xì)節(jié)是未鋪墊的。

          比如說反射和泛型基礎(chǔ),這些在【Java3y】都有過詳細(xì)的基本教程甚至電子書,我就不再詳述了?;貜?fù)「888」即可獲取


          歡迎關(guān)注我的微信公眾號(hào)【面試造火箭】來聊聊Java面試

          添加我的微信sanwaiyihao進(jìn)一步交流和學(xué)習(xí)


          瀏覽 44
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                    <th id="afajh"><progress id="afajh"></progress></th>
                    秋霞无码一区二区三区 | 色婷婷成人做爱a片免费看网站 | 日本黄视频网 | av资源站在线 | 少妇一级婬片60分钟一 |