質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

インターフェース

インターフェイスという用語はハードウェア・ソフトウェアの両方に使うことができます。 一般的に、インターフェイスは内部処理の詳細を見せないように設定されます。オブジェクト指向プログラミングにおいて、インターフェイスはabstractクラスとして定義されます。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Q&A

1回答

869閲覧

インターフェースに使用するdefaultについての解説

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

インターフェース

インターフェイスという用語はハードウェア・ソフトウェアの両方に使うことができます。 一般的に、インターフェイスは内部処理の詳細を見せないように設定されます。オブジェクト指向プログラミングにおいて、インターフェイスはabstractクラスとして定義されます。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

0グッド

0クリップ

投稿2020/03/19 06:40

現在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 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

確認して欲しい…

「インターフェースに実装を持つメソッドを使うときの記述「default」をServiceクラスの該当メソッドに使用してください。」

本当に上記の通りの記述なのでしょうか? もしそうだとすると、その記述自体が間違っている可能性があります。
default はインターフェースで使われるキーワードです。クラスで使うものではありません。よって、

「default」をServiceクラスの該当メソッドに使用してください。

Serviceがクラスであれば、そのクラスのメソッドに default を用いることはできません。

###もう少し教えて欲しい…
2つのソースが記載されていますが、1つ目のメソッド実装は interface それとも class 内の実装なのでしょうか? もし前者だとしたら、その interface の名前は何ですか? また2つ目のソースにある CartServiceInterface の定義の記載もお願いします。

今回のケースではもっと情報がないと回答が難しいです。

###ところで…

serviceクラスに記載しているnullが非常に気になります。。。

詳しいことは分かりませんが、nullリターンではなく、

Java

1return sortOrderDetailBeanForCart(listGoodsBean, null);

…な気がします。

投稿2020/03/20 20:57

Mirko_Mug_Cup

総合スコア56

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問