2017年8月30日水曜日

Java 参照渡し

Javaで関数に引数を渡す場合、参照渡し(正確にいうと、JAVAには参照渡しはないらしいが)になっていることに きづかず基本的ミスをしてしまう。
関数の中で、配列のソートをやっているが、これが、関数外部に影響してしまったことに
気づかずにいる。
ディープコピーとやらが必要なようだ。
String[] aaa = {"1", "2", "3", "4"};
String[] bbb = Arrays.copyOf(aaa, aaa.length);
という方法が こちらにあったので、参考にさせていただきました。

2017年8月11日金曜日

Java tomcatのパス取得

Strutsなどのactionでは
getServlet().getServletContext().getRealPath("/WEB-INF/file/")で絶対パスを取得できるが、それ以外ではできないようだ。
調べてみると、かわりにTomcatのパスが次の方法で取得できた。
new File("webapps/アプリ名/WEB-INF/file/").getCanonicalPath()+"\\";
なお、ディレクトリパスの場合は、上のように、最後に\\をつけないといけないようだ。(Windowsの場合)

Strutsで、バッチ処理を行う場合など、必ずしもactionを経由しない場合もあるので、ファイル処理は上記の方法がいいようだ。