Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

8u191でDocker対応がバックポートされたので、頭の整理と確認をしておいた。 ## まとめ Java 11使っておけばそもそも安心なんだけど、Java 8でも8u191以降を使えば安心。 ## 課題だったこと DockerでJavaを動かすときJavaが「そのコンテナに割り当てられたCPU・メモリ」じゃなくて「Dockerが動いてるHostのCPU・メモリ」を見てしまうことが課題だった。 ## Java 10以降 Java 10以降なら「そのコンテナに割り当てられたCPU・メモリ」を見る対応が入ってるから安心になった。 https://www.oracle.com/technetwork/java/javase/10-relnote-issues-4108729.html#JDK-8146115 ## Java 8は? Java 8で入ってた対応は8u131のこれ: Bug ID:
FragmentからActivityのメソッドを呼び出したい(コールバックしたい)こと、ありますよね。 二昔前には幾度か議論になりましたが、概ね以下のような内容だったかと思います。 Y.A.M の 雑記帳: Fragment から Activity にコールバックする方法 当時、私の中で(面倒くさいながらも)有力だったのは、「インターフェースを被せることで特定のActivityへの依存性を排除しつつ、基本的には getActivity() で逐一取ってきて、キャストの成否をちゃんとチェックする」という方針でした。 今回ご紹介するものも方針はまったく同じなのですが、Java8のOptionalと高階関数を使うと少しスッキリ書けるよ、というお話です。 コード public class HogeFragment extends Fragment { // 略 private void onCli
Speee技術顧問の id:gfx です。 もうかなり時間が立ってしまいましたが、2月に行われたSpeeeKaigi #2 で基調講演をやらせてもらいました。 SpeeeKaigi #2の様子はこちらです。 tech.speee.jp 社内でこういうイベントがあるのはとてもいいですね。今回は自由テーマだったので、各人の興味分野が知れて大変楽しい一日でした。 私も普段の仕事とはあまり関係ない自由研究として、Retropilerというツールを開発して発表しました。当日のプレゼンテーションはQiitaにあります。 Retropiler: AndroidでJava8の機能を使うもう一つの方法 Retropiler: https://github.com/retropiler/retropiler この資料はwhatにフォーカスしているので、それを補間すべくwhyとhowをこのエントリで書きます。
公式ドキュメントにありました。一言でまとめると、Android Oのpreviewが出た現在においても「Android N (API version 24)と同水準」となっています。 Use Java 8 language features | Android Studio Android Studio 2.4 preview 4 (およびそれが要求するツールチェイン)の段階では、 desugar と呼ばれるツール(実体はAndroid Gradle PluginのTransform APIによるbytecode weaving tool)によって、一度javacでコンパイルしたバイトコードのJava8の言語機能(lambda, repating annotationsなど)をJava6水準のバイトコードに変換し、それをdxコマンドでdexにコンパイルするというプロセスを経るようです。この
package premium.friday; import java.time.DayOfWeek; import java.time.LocalDate; import java.time.YearMonth; import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAdjusters; public class Main { public static void main(String[] args) { int[] years = {2017, 2018, 2019}; for (int year : years) { for (int month = 1; month < 13; month++) { if (year == 2017 && month == 1) { continu
At Google, we always try to do the right thing. Sometimes this means adjusting our plans. We know how much our Android developer community cares about good support for Java 8 language features, and we're changing the way we support them. We've decided to add support for Java 8 language features directly into the current javac and dx set of tools, and deprecate the Jack toolchain. With this new dir
【Date and Time API】Java 8徹底再入門【ラムダ式ハンズオン】(大阪,7/11) - connpass で Date and Time API について学んだので復習。 ラムダはハンズオン形式で実際に手を動かせていたけれど、 Date and Time API の方は講義形式だったので、話を聞いて気になったところとかを実際に触ってみる。 要点整理 Date and Time API (JSR310)は ISO 8601 をモデリングして作られたもの。 ISO 8601 は、コンピュータ間でデータのやりとりをする際の、日付と時刻の書式に関する国際規格。 ISO 8601 について知らないと、 Date and Time API を正しく扱えないことがある。 といっても、 ISO 8601 について知っておくべきことは、そんなに多くない。 発表スライドに挙げられている表記法
Java7から追加されたtry-with-resources構文についてです。Java8についても関係がありましたので使い方からまとめておきます。 try-with-resourcesとは JavaSE6まではファイルやデータベースへのアクセスをするとリソースを解放するためにclose処理を記述していました。毎回close処理を書くのも面倒ですし、忘れるとメモリリークの原因になったりもします。そこでJavaSE7から追加されたtry-with-resources文を使うとこれらの問題が解決できるのです。 try-with-resources文は、1つ以上のリソースを宣言するtry文です。リソースは、プログラムでの使用が終わったら閉じられなければいけないオブジェクトです。try-with-resources文は、文の終わりで各リソースが確実に閉じられるようにします。 参照 : try-wi
背景 現在時刻を使った処理のJUnitテストを書きたい ファイルに時刻が埋まっているなど、チェックしたい時刻の変更が面倒 現在時刻から1分以内の処理時間かどうかを判定したい 判定対象となる時刻はファイルに記載されている この状態では、テストケースでファイルを用意してもその瞬間しか使えない。またファイル自体は自動生成するのはコストが高すぎる。 例えば、、、以下はStorm UI REST APIでアクセスできる情報。このcomponentErrors内にあるtimeを現在時刻と比較するようなJUnitの場合、色々と面倒。 { "executors": 1, "componentErrors": [ { "time": 1458203307000, "errorHost": "hostname", "errorPort": 6701, "errorWorkerLogLink": "http:\
概要 java.util.Calendar を使っていた日付処理のコードを、Java SE 8 で追加された Date and Time API を使って書き直してみたところ、そこそこ使い方がわかってきたので、記事にまとめてみました。 背景 Java で日付操作をするクラスには Calendar と Date があります。Java SE 7以前から Java を使っている場合は、このクラスの使い方を習得して使いこなしている方が多いのではないかと思います。 さて、Java SE 8 では Date and Time という新しい日付操作用のライブラリが追加されました。これまでの Calendar や Date との互換がない、思い切った新設計のライブラリです。そのため、「いまある Calendar や Date で問題なくプログラミングできているのに、わざわざ得体のしれないものを使う意味がわ
Clock clock = Clock.fixed( ZonedDateTime.of(2015, 12, 15, 23, 30, 59, 999999999, ZoneId.systemDefault()).toInstant(), ZoneId.systemDefault()); System.out.println(LocalDateTime.now(clock)); //2015-12-15T23:30:59.999999999 LocalDateTime from = LocalDateTime.of(2015, 12, 15, 0, 0); LocalDateTime to = LocalDateTime.of(2015, 12, 16, 12, 30, 59); Duration duration = Duration.between(from, to); System.ou
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く