★★Java質問・相談スレッド165★★
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2013/10/20(日) 19:30:39.35JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理 http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
(p)ttp://www.wikiroom.com/java/?path,classpath
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
・String に == は使うな。equals() を使え。※
前スレッド
★★Java質問・相談スレッド164★★
http://toro.2ch.net/test/read.cgi/tech/1378219684/
0002デフォルトの名無しさん
2013/10/20(日) 20:52:16.65おつかれ
0003デフォルトの名無しさん
2013/10/21(月) 16:41:41.910004デフォルトの名無しさん
2013/10/21(月) 17:52:02.580005デフォルトの名無しさん
2013/10/21(月) 17:55:51.43ゲームのシステムの部分と
インターフェースは別に作ったほうがいい感じかな
00065
2013/10/21(月) 17:56:22.810007デフォルトの名無しさん
2013/10/21(月) 21:24:01.17>プラグイン実行がライフサイクル構成でカバーされていません:
>org.codehaus.mojo:aspectj-maven-plugin:1.4:compile (execution: default, phase: process-sources)
これって、どうやれば解決しますか?
0008デフォルトの名無しさん
2013/10/21(月) 22:27:21.110009デフォルトの名無しさん
2013/10/21(月) 23:55:13.490010デフォルトの名無しさん
2013/10/22(火) 02:35:18.29久しぶりにスタートメニュー見たらJava Development Kitって項目が出来てたんだけど・・・
0011デフォルトの名無しさん
2013/10/22(火) 02:37:10.790012デフォルトの名無しさん
2013/10/22(火) 02:38:57.20http://www.oracle.com/technetwork/jp/java/javaseproducts/mission-control/index.html
0013デフォルトの名無しさん
2013/10/22(火) 02:39:10.350014デフォルトの名無しさん
2013/10/22(火) 02:41:25.04http://www.infoq.com/jp/news/2013/09/java7u40
0015デフォルトの名無しさん
2013/10/22(火) 06:53:42.980016デフォルトの名無しさん
2013/10/22(火) 07:28:41.910017デフォルトの名無しさん
2013/10/22(火) 07:31:37.23http://engawa.2ch.net/test/read.cgi/poverty/1382394266/
0018デフォルトの名無しさん
2013/10/22(火) 15:17:15.88常駐スレッドでJMSの土管プロセスを走らせようとしています。
これを止めるにはプロセスをkillする以外どの様にするのが一般的でしょうか。
環境はjava6、Linuxです。
0019デフォルトの名無しさん
2013/10/22(火) 18:11:12.190020デフォルトの名無しさん
2013/10/22(火) 18:18:19.020021デフォルトの名無しさん
2013/10/22(火) 20:27:44.14ちょっと違うがmaven。
具体的にどういう使い方か言ってくれないと。
0022デフォルトの名無しさん
2013/10/23(水) 04:52:22.99ttp://sourceforge.jp/magazine/13/10/23/145800
0023デフォルトの名無しさん
2013/10/23(水) 16:09:20.84以下がコンパイルエラーになってしまいます。
<c:if test="${not empty requestScope.footer}" >
<jsp:include page="<%=request.getAttribute("footer") %>" />
</c:if>
0024デフォルトの名無しさん
2013/10/23(水) 18:36:32.020025デフォルトの名無しさん
2013/10/23(水) 22:46:06.39すべてのクラスに共通のメソッドで処理を行いたいのですが方法はありますでしょうか
以下のようなイメージです。
String mehod(List<Class> list){
for(int i=0;i < list.size();i++){
list.get(i).originalmethod();
}
}
ループの中で実行するメソッドは、各クラス持っています。
引数の型にインターフェースを指定して、
そのインターフェースを実装したクラスでは、コンパイルエラーでした。
0026デフォルトの名無しさん
2013/10/24(木) 04:15:05.60<T extends Interface> String mehod(List<T> list)
0027デフォルトの名無しさん
2013/10/24(木) 12:24:54.820028デフォルトの名無しさん
2013/10/24(木) 12:48:52.20>>27
出来ました!ありがとうございます!
単体試験が5分の1になりました!
全体から見れば大したことないですが、こういう積み重ねが後々効いてきますね。
0029デフォルトの名無しさん
2013/10/24(木) 13:58:55.110030デフォルトの名無しさん
2013/10/24(木) 15:28:55.80今まで5つメソッドあったのを、これで1つに出来たからです。
0031デフォルトの名無しさん
2013/10/24(木) 17:25:37.36<T extends Interface> String foo(List<T> list)
と
String foo(List<? extend Interface> list)
の違いって意味ね、前者もメソッド呼び出し時に型パラメータ指定しなくても暗黙的に呼び出せるよね
0032デフォルトの名無しさん
2013/10/24(木) 18:34:18.18<T> void swap(List<T> list) {
T x = list.get(0);
T y = list.get(1);
list.set(1, x);
list.set(0, y);
}
とか
そうでなければ一緒
0033デフォルトの名無しさん
2013/10/24(木) 20:29:30.36class Aaa extends Bbb<任意の型,任意の型>
のようになっているコードを見たのですがこれを
class Test extends Aaa<任意の型,任意の型>
のように更に継承させて使いたい場合はどうしたらいいでしょうか?
0034デフォルトの名無しさん
2013/10/24(木) 20:43:07.00super<型,型>() って使えないの?
0035デフォルトの名無しさん
2013/10/24(木) 21:03:29.250036デフォルトの名無しさん
2013/10/24(木) 21:11:58.51もし俺がjavaで人間作ったらアナフィラキシーショックとか
自分自身で異常を起こしているバグみたいなのをなくすことができるとおもう
0037デフォルトの名無しさん
2013/10/24(木) 21:32:23.300038デフォルトの名無しさん
2013/10/24(木) 21:38:19.31例えば、JFrameのsetSize(Dimension d)は縦横のプリミティブ値を
コピーしたものをsetしているけど、setLayout(LayoutManager manager)は
LayoutManagerのインスタンスの参照を直接setしてますよね?
このように、あるクラスAのsetメソッドの引数がプリミティブ型ではなく、
あるクラスBのインスタンスの参照を渡すようになっている場合において、
そのAのsetメソッドの中で、Bのインスタンスの参照が直接setされるのか、
Bのフィールドの値をコピーしてsetするのか、どちらを行なっているのかを
知るためには、ライブラリのドキュメントを確認するしかないのでしょうか?
setメソッドだけではなく、その他の参照を引数に取るメソッドや、
参照が戻り値になってるメソッドにおいても、色々と怖いような気がします
もし、Javaの基本原則として「参照を直接setしちゃダメ(もしくは逆)」みたいな
暗黙の規則があるのならばそれも教えていただきたいです
0039デフォルトの名無しさん
2013/10/24(木) 21:54:23.630040デフォルトの名無しさん
2013/10/24(木) 21:58:43.720041デフォルトの名無しさん
2013/10/24(木) 22:40:33.30swingだろと他ライブラリだろうと、ドキュメントに書かれてないことは基本何でもアリ。
自分で防衛するしかない。
0042デフォルトの名無しさん
2013/10/24(木) 23:43:35.27>前者もメソッド呼び出し時に型パラメータ指定しなくても暗黙的に呼び出せるよね
java7までは型パラメータはObjectとして推論するから型安全じゃない。パラメタ指定したほうがいい。
8から正しく推論できるからもうちょっとの辛抱や。
0043デフォルトの名無しさん
2013/10/25(金) 05:49:27.69あとデコンパイルするソフトってjad以外にありますか?使いやすいやつを探してます
0044デフォルトの名無しさん
2013/10/25(金) 07:08:55.12class Test<A, B> extends Aaa<A, B>
0045デフォルトの名無しさん
2013/10/25(金) 10:02:38.97>>41が正しい答え。
あと補足しておくと、ソースコードを見れば内部でどういう処理を行っているかはわかる。
ただしソースコードの実装は「無保証」であるから、いつ実装内容が変更されても文句は言えない
よって仮にソースコードを読んで内部実装を知ってもそれを利用することは避けるべき
0046デフォルトの名無しさん
2013/10/25(金) 10:39:18.940047デフォルトの名無しさん
2013/10/25(金) 11:35:24.860048デフォルトの名無しさん
2013/10/25(金) 11:43:31.36Javaが嫉妬することはないだろうね。
0049デフォルトの名無しさん
2013/10/25(金) 12:14:33.73C#だろう。Java8は完全にC#の後追い。
インタフェースがあれば他に何もいらないと言っていた在りし日の姿からは程遠い色物になってしまったよ。
0050デフォルトの名無しさん
2013/10/25(金) 13:19:21.27世界は平和だったのに…
0051デフォルトの名無しさん
2013/10/25(金) 14:57:23.94ポケベルが消え、公衆電話が消え、携帯電話が消え、スマホが使われまくってるみたいに
Javaが消え、そしてC#もいずれ消える定め
0052デフォルトの名無しさん
2013/10/25(金) 16:20:26.77WindowsアプリをJavaで作る人間はいないし、
マルチプラットフォームをC#で作る人間もいない
0053デフォルトの名無しさん
2013/10/25(金) 16:29:55.760054デフォルトの名無しさん
2013/10/25(金) 17:50:11.190055デフォルトの名無しさん
2013/10/25(金) 17:52:01.320056デフォルトの名無しさん
2013/10/25(金) 17:59:03.72isEof = c.moveToFirst();
while (isEof) {
item.setText1(String.format("%d:%d", c.getInt(4), c.getInt(5)));
item.setText2(c.getString(7));
customAdapter.add(item);
isEof = c.moveToNext();
}
listView.setAdapter(customAdapter);
上のループで
CustomData item = new CustomData();
を外側に置いた場合、リストの内容が全て一番最後に入力したものになります
これはsetAdapterしたときにitem内に格納されているデータ(最後に入力したデータ)を読みにいっているために起こるという認識で良いのでしょうか
また、内側に置くことで全て表示出来るようになりましたが、この場合はなぜ表示できるのでしょうか
0057デフォルトの名無しさん
2013/10/25(金) 19:14:12.55アダプタの中には全項目でひとつの CustomData を共有している
内側に置いた場合は一項目ごとに新しい CustomData を new しているわけだから
アダプタの中には項目ごとに別々の CustomData がある
0058デフォルトの名無しさん
2013/10/25(金) 19:35:26.33http://fast-uploader.com/transfer/6938252686854.png
ひとつしかないから setText1 とかは前のを上書きして最後のが残る
0059デフォルトの名無しさん
2013/10/25(金) 21:34:57.690060デフォルトの名無しさん
2013/10/26(土) 14:48:28.340061デフォルトの名無しさん
2013/10/26(土) 14:54:44.590062デフォルトの名無しさん
2013/10/26(土) 16:40:47.34javaとかでこう言う事は可能でしょうか?
また可能なら参考になるサイトがあれば教えてください。
0063デフォルトの名無しさん
2013/10/26(土) 16:45:08.30HTMLの変換ならXLSTでできる、XML Javaの本かggrb見つかる
0064デフォルトの名無しさん
2013/10/26(土) 16:51:05.70mvn dependency:copy-dependenciesじゃ駄目かな。
ほしいJarをdependencyに書いておいてこのコマンドで依存性も含めて全部落としてきて
target/dependency内にコピると思うけど。
0065デフォルトの名無しさん
2013/10/26(土) 16:56:53.25レスありがとうございます
そちらの方を検索して探してきます
0066デフォルトの名無しさん
2013/10/26(土) 17:22:10.04xmlstarletで簡単にできそうなんでやってみたら、xhtml的に解釈できないとこがあって無理だった。
0067デフォルトの名無しさん
2013/10/26(土) 18:24:39.87import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.HTML;
import javax.swing.text.MutableAttributeSet;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.swing.text.BadLocationException;
class Hoge extends HTMLEditorKit.ParserCallback
{
public static void main(String[] args) throws FileNotFoundException, IOException {
Hoge hoge = new Hoge();
FileReader file = new FileReader("unko.html");
ParserDelegator pd = new ParserDelegator();
pd.parse(file, hoge, true);
file.close();
}
0068デフォルトの名無しさん
2013/10/26(土) 18:32:12.60swingはnetbeansのほうが優れてると思うし、
eclipseってwebアプリケーションとかの人が使ってるんだろうか
0069デフォルトの名無しさん
2013/10/26(土) 18:35:45.95使えなかった
0070デフォルトの名無しさん
2013/10/26(土) 18:43:48.71動作が軽快なとこがいいよ。
0071デフォルトの名無しさん
2013/10/26(土) 18:45:40.67javaでこういう比較と代入を一括でできませんか?
0072デフォルトの名無しさん
2013/10/26(土) 19:15:20.81書かれているmallocの例の場合は処理の流れの読みやすさを優先して個人的は二行に
分割すると思う。
比較的頻出するパターンだとwhileを使ったファイルの逐次読み込み。
Java File whileでググるとwhileの条件内で代入と比較を同時に行う例がよく出てくる。
ただ最近はこういった逐次読み込みもイテレーターとして抽象化してfor(:)で手軽に
行えるようにする場合が多い気がする。
0073デフォルトの名無しさん
2013/10/26(土) 22:34:25.01Files#lines(java.nio.file.Path, java.nio.charset.Charset)とか
0074デフォルトの名無しさん
2013/10/26(土) 22:35:24.18>>58
同じ名前でもループした分だけちゃんとクラスが作られてるんですね
親切に教えていただいてありがとうございます。謎が解けました
0075デフォルトの名無しさん
2013/10/26(土) 22:49:29.270076デフォルトの名無しさん
2013/10/26(土) 23:03:26.530077デフォルトの名無しさん
2013/10/26(土) 23:11:47.500078デフォルトの名無しさん
2013/10/26(土) 23:17:14.24なんの亀レスかと思ったら>>56のextentの話か
>(最後に入力したデータ)を読みにいっている
見えるか見えないかじゃなくて存在するかしないかの話。見えるのと存在するのと代入はそれぞれ違う。
>同じ名前でもループした分だけちゃんとクラスが作られてるんですね
javaはブロックスコープだからループ回すたびにコールスタックにスタックフレームpushするからループ回すたびに存在する、
ループ抜けるとスタックからpopするから存在しなくなる。これが繰り返されるから結果ループ回すたびにループした分だけちゃんとクラスが作られる。
無限ループするとStackoverflowするじゃん。スタック足らなくなって変数作れなくなったぜベイベー!って合図。
0079デフォルトの名無しさん
2013/10/26(土) 23:35:43.700080デフォルトの名無しさん
2013/10/26(土) 23:40:59.1660秒に満たない場合は秒表示のみできると助かるんですが。
0081デフォルトの名無しさん
2013/10/26(土) 23:52:45.62ない。
自作すれば。
簡単だし
0082デフォルトの名無しさん
2013/10/26(土) 23:52:56.95>javaはブロックスコープだからループ回すたびにコールスタックにスタックフレームpushするからループ回すたびに存在する
違う。同じローカル変数を初期化して再利用してる。
コンパイラがブロックスコープで名前解決してくれてるだけ。
0083デフォルトの名無しさん
2013/10/27(日) 00:01:09.250084デフォルトの名無しさん
2013/10/27(日) 00:07:49.07C系の静的言語の設計ではブロック変数を>>82のように実装するのが大々大前提だからね
よほど今と大きく異なるアーキテクチャのマシンで動かすのでもない限りは変わることはありえない
0085デフォルトの名無しさん
2013/10/27(日) 00:30:51.2530分ぐらい探してたので、ないと言ってもらえて助かりました。
private String fomatSecound(int secound){
int h = secound / 3600;
int m = (secound - (h * 3600)) / 60;
int s = (secound - (h * 3600) - (m * 60));
String duration;
duration = h == 0 ? "" : h + "時間";
duration = m == 0 ? duration : duration + m + "分";
duration = s == 0 ? duration : duration + s + "秒";
return duration;
}
こんなコード書いたんですけど、
もっとスマートな方法あったら教えてください。
0086デフォルトの名無しさん
2013/10/27(日) 00:57:47.01何か設定が悪いからなのでしょうか?
SEVERE: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.NoSuchFieldError: NULL
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:529)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
0087デフォルトの名無しさん
2013/10/27(日) 02:40:28.26原因で起こっている事例がいくつか。
0088デフォルトの名無しさん
2013/10/27(日) 03:13:17.33無いのなら自前で作ったものをライブラリとして公開するとかしたらとても
0089デフォルトの名無しさん
2013/10/27(日) 03:23:50.94class TimeFormater
{
public static void main(String[] args) {
int s = TimeFormater.toSeconds(7, 33, 55);
System.out.println(TimeFormater.format(s));
}
public static int toSeconds(int hours, int minutes, int seconds) {
return 3600 * hours + 60 * minutes + seconds;
}
public static String format(int seconds) {
int h = seconds / 3600;
int m = (seconds / 60) % 60;
int s = seconds % 60;
return (h > 0 ? h + "時" : "") + (h + m > 0 ? m + "分" : "") + s + "秒";
}
}
0090デフォルトの名無しさん
2013/10/27(日) 03:28:32.61つ Joda PeriodFormatter
0091デフォルトの名無しさん
2013/10/27(日) 03:33:30.93"Java time pretty print"でググればそれなりに方法は出てくる。
あと時刻に関してJavaでちょっと凝ったことをする場合はJodaが定番。
0092デフォルトの名無しさん
2013/10/27(日) 03:42:09.10Joda-Time - Java date and time API - Home
http://www.joda.org/joda-time/index.html
0093デフォルトの名無しさん
2013/10/27(日) 03:54:18.30これはいいかも!
Calendarにはガバガバメモリーリークしてるバグがあるからなw
0094デフォルトの名無しさん
2013/10/27(日) 04:28:13.280095デフォルトの名無しさん
2013/10/27(日) 04:29:18.51英語で検索とは・・・日本語圏での情報は少ないってことか
0096デフォルトの名無しさん
2013/10/27(日) 05:31:30.090097デフォルトの名無しさん
2013/10/27(日) 05:35:57.85出力する」という操作はpretty printという呼び方で決まり切っているから。
Googleで検索もしやすい。
0098デフォルトの名無しさん
2013/10/27(日) 05:44:55.030099デフォルトの名無しさん
2013/10/27(日) 07:28:06.68マジかお・・・Java 7の話?昔の話?
0100デフォルトの名無しさん
2013/10/27(日) 07:35:39.01本に書いてあった.javaを.classにする作業で使うjavacというコマンドをコマンドプロンプトに入力すると
エラー:メイン・クラスcom.sun.tools.javac.mainが見つからなかったかロードできませんでした
とメッセージが表示されて.classが作れません、どうすればできるか教えてください
jdkはインストールされてます、pathも確認しました
0101デフォルトの名無しさん
2013/10/27(日) 07:48:04.75■ このスレッドは過去ログ倉庫に格納されています