現在Javaを使用してWEBアプリケーションについて学んでいるのですが
「インターフェースに実装を持つメソッドを使うときの記述「default」をServiceクラスの該当メソッドに使用してください。」
という前提条件があり、defaultについていろいろ調べてみたのですが、内容がわからず質問させていただきました。
・そもそもdefaultはどんな役割なのか
・実際に使用する際どのように実装するのか
上記に関して教えていただきたいです。
下記に該当のコードを記載しました。
自分なりに解釈して記述してみたのですが、serviceクラスに記載しているnullが非常に気になります。。。
Java
1/** 2 * カート格納昇順をキープしたまま商品名・種類名・税抜価格・画像パスを格納するメソッド.<br> 3 * メモ:「default」はインタフェースに実装を持つメソッドを使うときの記述です。<br> 4 * CartServiceクラスのgetGoodsListInCartメソッドで使用してください。<br> 5 * 6 * @param listGoodsBean 7 * カート内リスト 8 * @param listOrderDetailDto 9 * (カート格納昇順になっていない)注文明細Dtoリスト 10 * @return (カート格納昇順になった)カート画面用注文履歴Beanリスト 11 * @throws Exception 12 * 例外 13 */ 14 public default List<OrderDetailBeanForCart> sortOrderDetailBeanForCart(List<GoodsBeanForCartFunction> listGoodsBean, 15 List<OrderDetailDto> listOrderDetailDto) throws Exception { 16 List<OrderDetailBeanForCart> listBean = new ArrayList<>(); 17 18 // DtoからBeanへフィールドをコピー 19 for (GoodsBeanForCartFunction bean : listGoodsBean) { 20 OrderDetailBeanForCart orderDetailBean = new OrderDetailBeanForCart(); 21 BeanUtils.copyProperties(orderDetailBean, bean); 22 listBean.add(orderDetailBean); 23 } 24 25 // カート格納昇順をキープしたまま商品名・種類名・税抜価格・画像パスを格納 26 for (OrderDetailBeanForCart bean : listBean) { 27 for (OrderDetailDto dto : listOrderDetailDto) { 28 if (bean.getGroupCode().equals(dto.getGroupCode()) && bean.getGoodsCode().equals(dto.getGoodsCode()) 29 && bean.getTypeCode().equals(dto.getTypeCode())) { 30 bean.setGoodsName(dto.getGoodsName()); 31 bean.setTypeName(dto.getTypeName()); 32 bean.setTaxExcludedPrice(dto.getTaxExcludedPrice()); 33 bean.setImgPath(dto.getImgPath()); 34 } 35 } 36 } 37 return listBean; 38 }
java
1public class CartService implements CartServiceInterface { 2 /** 商品Mapper */ 3 private GoodsMapper goodsMapper; 4 5 /** 6 * コンストラクタ<br> 7 * 8 * @param goodsMapper 9 * 商品mapper 10 */ 11 @Autowired 12 public CartService(GoodsMapper goodsMapper) { 13 this.goodsMapper = goodsMapper; 14 } 15 16 /** 17 * カート内詳細取得メソッド 商品名・種類名・税抜価格・画像パスを取得します。 18 */ 19 @Override 20 21 public List<OrderDetailBeanForCart> getGoodsListInCart(List<GoodsBeanForCartFunction> listGoodsBean) 22 throws ComponentException { 23 24 try { 25 26 this.sortOrderDetailBeanForCart(listGoodsBean, null); 27 28 29 } catch (Exception e) { 30 e.printStackTrace(); 31 throw new ComponentException("カート内詳細取得時例外発生.", e); 32 } 33 return null; 34 35 }