Posted February 20, 2015 under Java. Tweet A common frustration with Java is the inability to overload methods when the method signatures differ only by type parameters. Here’s an example, we’d like to overload a method to take either a List of Strings or a List of Integers. This will not compile, because both methods have the same erasure. class ErasureExample { public void doSomething(List<Strin
文字列の配列やリストを[〜]で囲ってカンマで区切って連結するという話、String.joinだとどう?とwatermintさんから指摘があったので、試してみました。 シンプル! public static String stringJoin(){ return "[" + String.join("],[", strarray) + "]"; } でも、1847msでした。改めて前後の文字を文字列連結してるところで時間かかってる感じ。 で、昨日のStringBuilder版はもう少し最適化できるので書き直します。 public static String stringBuilderJoin(){ StringBuilder s = new StringBuilder("["); for(int i = 0; i < strarray.length; ++i){ if(i != 0){ s.
さて,本日未明JavaSE8がリリースされましたね!アメリカ時間では18日でしたが,日本では19日になってました. 無事リリースされたのでJavaSE8で導入されたマイナーな言語仕様を2つ紹介してみたいと思います. メジャーな言語仕様は誰かが紹介してくれると思うので・・・ 交差型キャスト レシーバパラメータ(仮引数にthis) 交差型キャスト 一つ目はProject Lambdaで導入された交差型キャストです. まず,Javaには交差型、あるいは合成型と呼ばれるものがあります。 今まではジェネリクスの型境界にだけ使えていた「Type1 & Type2」のように型を&でつないだものです。 これがJavaSE8からはキャスト式で利用できるようになります。 例えば次のようなものです。 (Type1 & Type2) expr; &で繋げられる型は3つでも4つでも問題ないです. ただし,一つ目の型
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く