Java

細かすぎて伝わらないJava10のvar仕様

いろいろ試したのでメモ。 初期化時に型が決まる まあ当たり前ですが。 public class Main { public static void main(String... args) { var hoge = 1; // hoge は int型になる hoge = 2147483648; // Integer.MAX_VALUE + 1 System.out.println(hoge); } }…

無限Streamに終了条件を設定する (Java9版)

noisyspot.hatenablog.com というのを以前書きましたが、Java9では Stream#takeWhile というメソッドが追加されてこういうケースが簡単に書けるようになりました。 public static String getTreePathTakeWhile(Node node, String delimiter) { List<String> names = </string>…

Java8 定義済み関数型インタフェース(主要なものメモ)

忘れるのでメモ。プリミティブ型用のインタフェースは省略。 Interface Scala風関数型表記 Consumer<T> (T) => void BiConsumer<T, U> (T, U) => void Supplier<T> () => T Function<T, R> (T) => R BiFunction<T, U, R> (T, U) => R Predicate<T> (T) => boolean BiPredicate<T, U> (T, U) => bo</t,></t></t,></t,></t></t,></t>…

無限Streamに終了条件を設定する

例えばDOMのようなツリー構造があったとして、あるノードを渡された時に、ルートからそのノードまでの名前を連結してパス文字列を作成する、というプログラムを考えます。Java7でも動くように、副作用ループを使った書き方だとこんな感じ。 public static St…

FibBuzzをJavaで書いてみる

FizzBuzz は時代遅れらしいので FibBuzz を発案します | cod.noteJavaで書いて見ました。CodeGolf的に頑張るのはJavaっぽくない(偏見)のでまあ普通に。longだとフィボナッチ数列がn=92で桁あふれしてしまうのでBigIntegerでやってます。このため非常に見づ…

try-with-resourcesを試してみる

少し時間ができたので、↓の記事を参考にJava7のtry-with-resourcesを試してみました。 Java7 体当たり/try-with-resources Statement - 日々常々まあ他の言語からするとアレですが、Java6以前から比較すると地味にありがたい拡張ですね。特にcloseのチェッ…

Oracle JDBCドライババージョンによる日付型の扱いの違い

元記事最終更新:2010/08/26 概要 Oracle10gになってJDBCドライバの仕様が変わり、OracleのDATE型に対応するJava型が、java.sql.Timestampからjava.sql.Dateへ変更となった。また、Oracle側にTIMESTAMP型が追加となった(従来のDATE型は秒までの精度だが、TIM…

例外のスタックトレースが途切れる

元記事最終更新:2007/04/19 概要 Sun Java VMに含まれる、HotSpot Servet VMでアプリケーションを実行する際、たまに例外のスタックトレースが省略されてしまう件に関して記述。 現象 Sun Java SE 1.4.1_08 のHostSpot Server VMで確認。 同じ箇所繰り返しN…

RFC1123形式での時刻出力をJavaで実装する

元記事最終更新:2007/04/19HTTPヘッダ等に時刻情報を付加する場合、通常、RFC1123形式でフォーマッティングする必要がある。 以下は、現在時刻をRFC1123形式の文字列で取得するJavaコード例。 /** * RFC1123形式で現在時刻を取得する * @return 現在時刻をR…