SlideShare a Scribd company logo
1 of 35
Effective Java 輪読会 第4回
(項目23~25)
2013/1/8
開発部 野口
項目23 新たなコードで原型を使用しない
ジェネリック型


1つ以上の型パラメータを宣言に持つクラスや
インタフェース
 ジェネリッククラス/ジェネリックインタフェー

ス


例) List<E> はジェネリックインタフェース
 Eは型パラメータ
 「E

のリスト」と読む
 単に List とも読む
パラメータ化された型




クラス名やインタフェース名の後に、<> で囲
んだ実型パラメータのリストが続くもの
例) List<String>
 「文字列のリスト」と読む
原型





実型パラメータを伴わないで使用されるジェ
ネリック型の名前
例) List<E> に対応する原型は List
原型 List は、ジェネリックスがプラット
フォームに追加される前のインタフェース型
List と同様に振る舞う
リリース 1.5 より前のコレクショ
ン宣言
// Stamps インスタンスだけを含んでいる
private final Collection stamps = … ;
stamps.add(new Stamp()); // これが想定している挿
入
stamps.add(new Coin()); // これもコンパイルエ
ラーにならない
for (Iterator I = stamps.iterator(); i.hasNext();) {
Stamp s = (Stamp) i.next(); // ClassCastException
がスローされる
}
パラメータ化されたコレクション
型(1/2)

private final Collection<Stamp> stamps = … ;
stamps.add(new Stamp()); // これは想定している挿
入
stamps.add(new Coin()); //これはコンパイルエ
ラーになる
パラメータ化されたコレクション
型(2/2)
// キャストも不要に
for (Stamp s : stamps) {
... // 切手で何かをする
}
for (Iterator<Stamp> i = stamps.iterator();
i.hasNext();) {
Stamp s = i.next(); // キャストなし
... // 切手で何かをする
}
間違えるのはどんなとき?


java.sql.Date インスタンスのコレクション
に、java.util.Date インスタンスを入れてしま
うとか……。
原型の使用




原型を使用すると、ジェネリックスの安全性
と表現力のすべてを失うことになる
原型は、移行互換性のために残されている
List と List<Object> の違い


List は、ジェネリック型検査が行われない
 パラメータ

List に List<String> を渡すことができ

る
 List<String> は List のサブタイプ


List<Object> は、どのような型のオブジェクト
でも保持できることをコンパイラに明示的に伝
えている
 List<Object>

に List<String> を渡すことはできな

い
 List<String> は、List<Object> のサブタイプでは
ない(!)
非境界ワイルドカード型


ジェネリック型を使用したいけれど、実際の
型パラメータが何であるか分からなかった
り、気にしたりしない場合にクエスチョン記
号を使用できる
 例)ジェネリック型

Set<E> に対するワイルド

カード型は Set<?>
 「何らかの型のセット」と読む
 どのようなセットも保持できる(!)
Set<?> と Set の違い






Set<?> は安全
Set は安全ではない
Set<?>(Collection<?>) には、(null 以外
の)いかなる要素も入れることができない
Set(Collection)には、どのような要素も入
れることができる
例外 (1/2)


クラスリテラルでは、原型を使用しなければ
ならない
 例)

List<String>.class ではなく、List.class を使
用する必要がある
 ジェネリック型情報が実行時に消されているから
例外 (2/2)


非境界ワイルドカード型以外のパラメータ化
された型に対する instanceof 演算子の使用は
許されていない
 やはり、ジェネリック型情報が実行時に消されて

いるから
 非境界ワイルドカード型についても、instanceof
の使用はできるが、原型に対して使用した場合と
違いがない
 原型を使用するのがよい
まとめ(1/2)


新たなコードでは原型は使用しない
 実行時例外となる可能性があるため



原型はジェネリックス導入前のコードとの互
換性と相互運用のためだけに提供されている
まとめ(2/2)






Set<Object> は任意の型のオブジェクトを含
むことが可能なセットを表しているパラメー
タ化された型<安全>
Set<?> は何らかの不明な型のオブジェクトだ
けを含むことが可能なセットを表しているワ
イルドカード型<安全>
Set はジェネリック型システムから外れてい
る原型<安全でない>
項目24 無検査警告を取り除く
無検査警告

Set<Lark> exaltation = new HashSet();
無検査警告を取り除く

Set<Lark> exaltation = new HashSet<Lark>();



取り除くことが可能なすべての無検査警告を取り
除くこと
すべての警告を取り除けば、コードが型安全であると
安心できる
 実行時に ClassCastException が発生しない

無検査警告を抑制する


以下の場合にのみ、
@SuppressWarnings("unchecked") アノテー
ションで警告を抑制する
 警告を取り除くことができない
 警告を起こしているコードが型安全
SuppressWarnings アノテー
ション




個々のローカル変数宣言からクラス全体ま
で、どのような粒度でも使用できる
できる限り最小のスコープに対して使用する
こと
 変数宣言、非常に短いメソッドやコンストラクタ

等


クラス全体には決して使用しない
 重大な警告を隠蔽してしまうため
ローカル変数宣言へアノテーショ
ンを移動させる



例)pp.114 toArray メソッド
return 文は宣言ではないので、
SuppressWarnings アノテーションを付けるこ
とはできないが、ローカル変数を宣言するこ
とでスコープを最小限にすることができる
@SuppressWarnings("unchecked")
アノテーション


@SuppressWarnings("unchecked") アノテー
ションを使用する時には、そうするのが安全
である理由を述べるコメントを必ず追加する
 他の人がコードを理解することを助ける
 計算が安全ではなくなるような変更を誰かが行う

可能性を減らす
 コメントについて考えるうちに、やはり安全では
ないということに気づく可能性もある
まとめ


無検査警告は重要、無視してはいけない
 実行時の

ClassCastException の可能性を表して

いる


取り除くことが不可能で、それが実際には型
安全であると明確に示せる場合のみ、最小限
のスコープで警告を抑制する
 コメントにその理由を残す
項目25 配列よりリストを選ぶ
配列とジェネリック型の違い 1 (of
2)


配列は共変(covariant)
が Super のサブタイプならば、配列型 Sub[]
は Super[] のサブタイプ

 Sub



ジェネリックスは不変(invariant)
と Type2 に対して、List<Type1> は
List<Type2> のサブタイプでもなければスーパー
タイプでもない

 Type1
共変な配列は実行時に失敗する

Object[] objectArray = new Long[1];
objectArray[0] = “I don„t fit in”; // ArrayStoreException
<実行時エラー>
不変なジェネリック型はコンパイ
ル時に失敗する

List<Object> ol = new ArrayList<Long>(); // 互換性の
ない型<コンパイルエラー>
ol.add("I don't fit in");
配列とジェネリック型の違い 2 (of
2)


配列は具象化されている
 実行時にその要素型を知っていて、強制する



ジェネリックスはイレイジャで実装されてい
る
 コンパイル時にのみ型制約を強制し、実行時には

要素の型情報を廃棄(イレイズ)する
ジェネリック配列の生成が許され
ていない理由


型安全ではないから
 例)pp.117

「なぜジェネリック配列生成が許さ
れないのか」
 もしこの例がコンパイルされてしまったら、行

(5) で

ClassCastException が発生する
 それを防ぐために、行 (1) でコンパイルエラーとなる
具象化不可能型






その実行時の表現がコンパイル時の表現より
も情報が尐ない型
具象化可能なパラメータ化された型は、非境
界ワイルドカード型のみ
非境界ワイルドカード型の配列の生成は許さ
れているが、まれにしか有用ではない
可変長引数について




可変長引数のメソッドでジェネリック型を使
用した場合、警告が発生する
その場合、抑制するか、API として可変長引
数とジェネリック型の混在を避けるかする
非ジェネリックスからジェネリッ
クスへの変更例








pp.118 上部 ジェネリックスを使用しない簡
約、そして並行性の欠陥↓
pp.118 下部 ジェネリックスを用いず、並行性
の欠陥もない簡約↓
pp.119 上部 簡約の単純なジェネリック版 - コ
ンパイルされない↓
pp.119 下部 リストに基づく簡約
 ここで

synchronized(list) としているのは、new

によるインスタンス生成がアトミックでないか
ら?
→そのはず。
まとめ


配列は共変で具象化されている
 実行時の型安全性を提供するが、コンパイル時の

型安全性は提供しない


ジェネリックスは不変でイレイズされる
 実行時の型安全性を提供しないが、コンパイル時

の型安全性を提供する


配列とジェネリックスの混在によってコンパ
イル時エラーや警告が出る場合、配列をリス
トに置換することを考えるとよい

More Related Content

More from Appresso Engineering Team

JavaScript 勉強会 ― 変数・演算子・文
JavaScript 勉強会 ― 変数・演算子・文JavaScript 勉強会 ― 変数・演算子・文
JavaScript 勉強会 ― 変数・演算子・文Appresso Engineering Team
 
Effective Java 輪読会 第7章 項目43-44
Effective Java 輪読会 第7章 項目43-44Effective Java 輪読会 第7章 項目43-44
Effective Java 輪読会 第7章 項目43-44Appresso Engineering Team
 
Effective Java 輪読会 第7章 項目41-42
Effective Java 輪読会 第7章 項目41-42Effective Java 輪読会 第7章 項目41-42
Effective Java 輪読会 第7章 項目41-42Appresso Engineering Team
 
Effective Java 輪読会 第7章 項目38-40
Effective Java 輪読会 第7章 項目38-40Effective Java 輪読会 第7章 項目38-40
Effective Java 輪読会 第7章 項目38-40Appresso Engineering Team
 
Effective Java 輪読会 第6章 項目35-37
Effective Java 輪読会 第6章 項目35-37Effective Java 輪読会 第6章 項目35-37
Effective Java 輪読会 第6章 項目35-37Appresso Engineering Team
 
Effective java 輪読会 第6章 項目32-34
Effective java 輪読会 第6章 項目32-34Effective java 輪読会 第6章 項目32-34
Effective java 輪読会 第6章 項目32-34Appresso Engineering Team
 
Effective java 輪読会 第6章 項目30-31
Effective java 輪読会 第6章 項目30-31Effective java 輪読会 第6章 項目30-31
Effective java 輪読会 第6章 項目30-31Appresso Engineering Team
 
Effective java 輪読会 第5章 項目26-29
Effective java 輪読会 第5章 項目26-29Effective java 輪読会 第5章 項目26-29
Effective java 輪読会 第5章 項目26-29Appresso Engineering Team
 

More from Appresso Engineering Team (20)

JavaScript 勉強会 ― 変数・演算子・文
JavaScript 勉強会 ― 変数・演算子・文JavaScript 勉強会 ― 変数・演算子・文
JavaScript 勉強会 ― 変数・演算子・文
 
JavaScript 勉強会 ― 型と値
JavaScript 勉強会 ― 型と値JavaScript 勉強会 ― 型と値
JavaScript 勉強会 ― 型と値
 
Effective Java 輪読会 項目69-70追加
Effective Java 輪読会 項目69-70追加Effective Java 輪読会 項目69-70追加
Effective Java 輪読会 項目69-70追加
 
Effective Java 輪読会 項目69-70
Effective Java 輪読会 項目69-70Effective Java 輪読会 項目69-70
Effective Java 輪読会 項目69-70
 
Effective Java 輪読会 項目66-68
Effective Java 輪読会 項目66-68Effective Java 輪読会 項目66-68
Effective Java 輪読会 項目66-68
 
Effective Java 輪読会 項目71-73
Effective Java 輪読会 項目71-73Effective Java 輪読会 項目71-73
Effective Java 輪読会 項目71-73
 
Java Day Tokyo 2014 まとめ (chen)
Java Day Tokyo 2014 まとめ (chen)Java Day Tokyo 2014 まとめ (chen)
Java Day Tokyo 2014 まとめ (chen)
 
Effective Java 輪読会 項目63-65
Effective Java 輪読会 項目63-65Effective Java 輪読会 項目63-65
Effective Java 輪読会 項目63-65
 
Effective Java 輪読会 項目60-62
Effective Java 輪読会 項目60-62Effective Java 輪読会 項目60-62
Effective Java 輪読会 項目60-62
 
Effective java 輪読会 項目57-59
Effective java 輪読会 項目57-59Effective java 輪読会 項目57-59
Effective java 輪読会 項目57-59
 
Effective Java 輪読会 項目49-52
Effective Java 輪読会 項目49-52Effective Java 輪読会 項目49-52
Effective Java 輪読会 項目49-52
 
Effective Java 輪読会 項目45-48
Effective Java 輪読会 項目45-48Effective Java 輪読会 項目45-48
Effective Java 輪読会 項目45-48
 
Effective Java 輪読会 項目53-56
Effective Java 輪読会 項目53-56Effective Java 輪読会 項目53-56
Effective Java 輪読会 項目53-56
 
Effective Java 輪読会 第7章 項目43-44
Effective Java 輪読会 第7章 項目43-44Effective Java 輪読会 第7章 項目43-44
Effective Java 輪読会 第7章 項目43-44
 
Effective Java 輪読会 第7章 項目41-42
Effective Java 輪読会 第7章 項目41-42Effective Java 輪読会 第7章 項目41-42
Effective Java 輪読会 第7章 項目41-42
 
Effective Java 輪読会 第7章 項目38-40
Effective Java 輪読会 第7章 項目38-40Effective Java 輪読会 第7章 項目38-40
Effective Java 輪読会 第7章 項目38-40
 
Effective Java 輪読会 第6章 項目35-37
Effective Java 輪読会 第6章 項目35-37Effective Java 輪読会 第6章 項目35-37
Effective Java 輪読会 第6章 項目35-37
 
Effective java 輪読会 第6章 項目32-34
Effective java 輪読会 第6章 項目32-34Effective java 輪読会 第6章 項目32-34
Effective java 輪読会 第6章 項目32-34
 
Effective java 輪読会 第6章 項目30-31
Effective java 輪読会 第6章 項目30-31Effective java 輪読会 第6章 項目30-31
Effective java 輪読会 第6章 項目30-31
 
Effective java 輪読会 第5章 項目26-29
Effective java 輪読会 第5章 項目26-29Effective java 輪読会 第5章 項目26-29
Effective java 輪読会 第5章 項目26-29
 

Recently uploaded

部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員Sadaomi Nishi
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdkokinagano2
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperleger Tokyo Meetup
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )iwashiira2ctf
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑Akihiro Kadohata
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルCRI Japan, Inc.
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)keikoitakurag
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用KLab Inc. / Tech
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose EstimationToru Tamaki
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfTakayuki Nakayama
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一瑛一 西口
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521Satoshi Makita
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイントonozaty
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計atsushi061452
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。iPride Co., Ltd.
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdfAyachika Kitazaki
 

Recently uploaded (16)

部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 

Effective java 輪読会 第5章 項目23-25