[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 05/05 05:37 / Filesize : 295 KB / Number-of Response : 1047
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Java入門・初心者質問スレ Part.8



1 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 20:17:08.87 ID:N8MsK2gr0.net]
Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.7
mevius.5ch.net/test/read.cgi/tech/1515549964/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured

997 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 10:48:57.26 ID:vMTyjZUqa.net]
COBOL以外覚えられなくてCOBOLにしがみついてるって意味なら当てはまらんなあ
俺の場合は他の言語から入って後からJava書き始めた口だし

998 名前:デフォルトの名無しさん [2019/02/11(月) 15:48:11.98 ID:Xld2ZNBKa.net]
ステートレスBeanとステートフルBeanの違いがわかりません。
例をあげて違いを明確に教えてください。

999 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 17:48:15.62 ID:jZrUzxgNa.net]
ジェネリクスについて質問です
List<HashMap<String, Integer>> 型のリストをソートするためのComparotorクラスって、
class Hoge implements Comparotor<Map <String, Integer>> {}
で良いんですか?
どこかでMap<?, ?>とワイルドカードにしないといけないと見たんですが(うろ覚えです)、特にそうしなくても動くので気になりました

1000 名前:デフォルトの名無しさん [2019/02/16(土) 08:20:41.88 ID:fTKLBuzC0.net]
ここってちょっと難しい質問だとレス止まるな。

1001 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 10:14:53.73 ID:n5QWwS4y0.net]
今頃Javaに熱意のあるプログラマーなんて居ないし

1002 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 18:45:03.62 ID:N5DMegPc0.net]
ステートレスは1回の処理で破棄される
ステートフルは永続性がある
つーか、Javaの質問じゃないわ

1003 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 15:14:02.61 ID:FJjom38pa.net]
該当スレがないので
eclipseからintelij IDEAを試してますが、括弧の中からenterで抜け出せないのが不便過ぎます。

ショートカットは面倒だし、tabキーもsoutなんかの括弧付き定型文では無効。
使ってる人はどう対応してるのか教えてください

1004 名前:デフォルトの名無しさん [2019/02/20(水) 16:36:06.49 ID:4EtSY22fa.net]
括弧の中からenterで抜け出すの意味がよくわからん

1005 名前:デフォルトの名無しさん mailto:age [2019/02/20(水) 19:06:18.77 ID:6i9INm92M.net]
エクリプスエアプか?



1006 名前:デフォルトの名無しさん mailto:age [2019/02/20(水) 19:06:56.72 ID:6i9INm92M.net]
エクリプス童貞の皆さん

1007 名前:デフォルトの名無しさん [2019/02/20(水) 20:21:31.82 ID:EKI9LXSlM.net]
エンターキーなのに出たいという話は全世界が驚く発言。

1008 名前:デフォルトの名無しさん mailto:age [2019/02/20(水) 20:26:29.38 ID:6i9INm92M.net]
>>966
おい童貞

1009 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 21:16:52.17 ID:K6Fdo/zQr.net]
こういう事を言ってる?
https://ja.stackoverflow.com/questions/39484/intellijで括弧の中身を入力した後エンターキーで自動でカーソルを括弧の外に移動させたい

でもぱっと見た感じその条件はこれじゃ解決できなさそうやね

1010 名前:デフォルトの名無しさん [2019/02/20(水) 22:50:23.64 ID:V5pUCRq30.net]
Enter押すのも→押すのもワンキーなんだから、慣れてるかどうか以外の違いはないんじゃないかと思った。

1011 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 23:00:18.44 ID:VQnn8S2l0.net]
>>968
そうですね。そのショートカットの他に、()+文字列続けて打ってる場合はtabで抜け出すことができます。
しかしprint()のように()を含む補完だと 中身を書いて抜け出すことができません。

1012 名前:デフォルトの名無しさん [2019/02/21(木) 05:41:02.41 ID:jvb9Tzci0.net]
;打てば抜けられるときあるよな
抜けられないときもあるけど

1013 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 17:34:53.91 ID:SR0wFFcv0.net]
グーグルのスプレッドシートをAPIとjavaで読み書きしてるのですが、
シートの行数が2万行とか3万行になると、読み込みに時間がかかって Timeout 例外になります。
ググってその対処法を見つけたんですが、ちゃんと動作

1014 名前:してくれません。何が悪いのか分かりませんか?
デフォルトのタイムアウトは20秒くらいで、60秒くらいに設定しても変化ありません。

https://stackoverflow.com/questions/46999143/how-to-set-timeout-for-google-client-spreadsheet-api

こっちも参考になるかもしれません。
https://stackoverflow.com/questions/29518231/sockettimeoutexception-read-timed-out-on-insert-to-google-drive-is-it-retryab
https://developers.google.com/api-client-library/java/google-api-java-client/errors
[]
[ここ壊れてます]

1015 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 19:25:26.84 ID:9TadMKc3a.net]
>>972
変化がないってことは変わらず20秒でタイムアウトになるって意味?

あと何が悪いのか分からないと言われても、実際に書いたコードを見せてもらわないことにはどうにもならん



1016 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 19:39:21.87 ID:SR0wFFcv0.net]
>>973
自分のコードはこんな感じです。

private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();

public static Sheets getSheetsService() throws IOException, GeneralSecurityException {
final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();

return new Sheets.Builder(HTTP_TRANSPORT, JSON_FACTORY, setTimeout(getCredentials(HTTP_TRANSPORT)))
.setApplicationName(APPLICATION_NAME)
.build();
}

private static HttpRequestInitializer setTimeout(final HttpRequestInitializer initializer) {
return request -> {
initializer.initialize(request);
request.setReadTimeout(60000);
};
}

デバッガでトレースしてもラムダ式の中のコードが実行されないし、相変わらず20秒でタイムアウトになります。

1017 名前:デフォルトの名無しさん [2019/02/21(木) 19:42:18.83 ID:fprmeCB00.net]
>>974
httpRequest.setConnectTimeout(3 * 60000); // 3 minutes connect timeout
これ入れてもNG?

1018 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 19:46:38.87 ID:SR0wFFcv0.net]
>>975
同じです。そっちのコードも試しました。

5000行くらいだとスムーズに読んでくれるんで、シートをいくつも作ってそこに5000行ずつ分割した上で読んだりしてるんですけど、
すごく手間だし、シートのある列がどこまで埋まってるか知りたいなんて時はそういうこともできないので困ってます。

1019 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 20:18:27.97 ID:9TadMKc3a.net]
>>976
携帯だから試せないけど、>>974のコードに>>975のを加えて両方書いてもダメ?

1020 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 20:29:20.31 ID:bp6QexpC0.net]
ラムダの中が実行されないなら渡し方が違うんでね

1021 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 20:31:04.28 ID:SR0wFFcv0.net]
>>977
private static HttpRequestInitializer setTimeout(final HttpRequestInitializer initializer) {
return request -> {
initializer.initialize(request);
request.setConnectTimeout(60000);
request.setReadTimeout(60000);
};

これでやってみたけどダメでした。

1022 名前:デフォルトの名無しさん [2019/02/21(木) 21:19:34.16 ID:Neuw5rL80.net]
>>966
Return と書いてあるシールでも貼っときなさい。

1023 名前:デフォルトの名無しさん [2019/02/21(木) 21:27:18.64 ID:lsmx9sV60.net]
>>980
リターンキーは左下に行くという意味で、戻るわけではありません。

1024 名前:デフォルトの名無しさん [2019/02/21(木) 23:33:38.23 ID:fprmeCB00.net]
>>979
ちょっと覗いてみたけど

NetHttpTransport.buildRequest
  ・ConnectionFactoryでconnectionを作成
  ・NetHttpRequestを作成
    # setTimeoutがあるけど呼び方がわからぬ

って感じだった
HttpRequestInitializerを呼び出すのはHttpTransportだと思うんだけど
どこで呼び出してるのかよくわからんかった

ConnectionFactoryを指定してみたりとか

final NetHttpTransport HTTP_TRANSPORT = new NetHttpTransport.Builder()
    .trustCertificates(GoogleUtils.getCertificateTrustStore())
    .setConnectionFactory(new DefaultConnectionFactory() {
      @Override
      public HttpURLConnection openConnection(URL url) throws IOException {
        HttpURLConnection

1025 名前:con = super.openConnection(url);
        con.setReadTimeout(1000000);
        con.setConnectTimeout(1000000);
        return con;
      }
    })
    .build();

JVMの設定を入れてみたりとか
System.setProperty("sun.net.client.defaultConnectTimeout", "100000");
System.setProperty("sun.net.client.defaultReadTimeout", "100000");

Javaの起動時にJVMのオプション指定したりとか試してみてはどうだろ
[]
[ここ壊れてます]



1026 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 05:42:45.85 ID:p3Rb6+Rra.net]
まだ解決してないならタイムアウトしてる部分のソース見るのが一番早いかな

1027 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 08:02:33.12 ID:2zA+k7LF0.net]
>>982
コードまで書いてもらってありがとうございます。朝一で試してみたんですが、残念ながら変わりませんでした。
ともあれありがとうございました。

1028 名前:デフォルトの名無しさん mailto:age [2019/02/22(金) 08:51:44.48 ID:Iun5aGGoM.net]
>>984
タイムアウトで例外投げられてるなら
スタックトレース出力されてない?

スタックトレースを見ればどのオブジェクトが関わってるか
わかるんじゃないかな

それ貼ってもらえれば

1029 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 12:29:35.43 ID:2zA+k7LF0.net]
>>985
エラーはこんなのが出ます。

Exception in thread "main" java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
at sun.security.ssl.InputRecord.read(InputRecord.java:503)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:983)
at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:940)
at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)

1030 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 12:34:28.93 ID:2zA+k7LF0.net]
これで全部ではなくて、まだもう半分あるんですが、書き込もうとしたらNGワード禁止と言われて書き込めませんでした。

1031 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 12:45:13.44 ID:2zA+k7LF0.net]
一番下から1行ずつ消しながら書き込めないかやってみます。

at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:735)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1587)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:347)
at com.google.api.client.http.javanet.NetHttpResponse.<init>(NetHttpResponse.java:37)
at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:105)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:981)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352)

1032 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 21:43:24.52 ID:2zA+k7LF0.net]
HttpRequestInitializer をググってたらこういうページに行き当たりまして、
https://developers.google.com/api-client-library/java/google-http-java-client/reference/1.19.0/com/google/api/client/http/HttpRequestInitializer
そこに書いてあった DisableTimeout というクラスを組み込んでみたんですが、今のところ動作してるみたいです。

public static Sheets getSheetsService() throws IOException, GeneralSecurityException {

class DisableTimeout implements HttpRequestInitializer {
public void initialize(HttpRequest request) throws IOException {
request.setConnectTimeout(0);
request.setReadTimeout(0);
}
}

final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();

return new Sheets.Builder(HTTP_TRANSPORT, JSON_FACTORY, new DisableTimeout())
.setApplicationName(APPLICATION_NAME)
.build();
}

これで35,000行のファイルを2、3秒で読んでしまうので、さすがに嘘だろうと思って、読み込んだ文字列をファイルに書き出してみたんですが、
確かに読めているみたいです。実際のところこれまで何十秒もかかっていた読み込みが、これでそんな短時間になるというのはちょっと理解不能です。

1033 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 22:32:47.11 ID:p3Rb6+Rra.net]
最初のコードと比べるとHttpRequestInitializerをnewしてるところが違うように見えるな

1034 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 14:33:18.47 ID:jlfdOyKu0.net]
えー皆さん大変申し訳ありません。>>989は間違いです。
ついでに最初に出したstackoverflowのコードはちゃんと動きます。
呼び出し側の自分のコードが原因でした。すごく馬鹿な間違いをしてまして、恥ずかしくて書けないような初歩的な

1035 名前:ミスでした。
ごめんなさい。
[]
[ここ壊れてます]



1036 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 16:33:08.81 ID:aHdAp3lda.net]
ワロタw
解決してよかったね

1037 名前:デフォルトの名無しさん [2019/02/28(木) 16:44:17.92 ID:imPJLa31d.net]
Arrays.streamにchar[]が無いのってオラクルの嫌がらせか何かですか?

1038 名前:デフォルトの名無しさん [2019/03/02(土) 03:41:49.15 ID:V02tz52S0.net]
あ、valueOfしてcharsでいいのか

1039 名前:デフォルトの名無しさん mailto:sage [2019/03/03(日) 23:52:36.89 ID:MEPSmozW0.net]
canvasのハックの仕方を教えてください
判断するための状態を読み取りたいです

1040 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 17:27:33.32 ID:l8LfQfs2d.net]
printwriterで最後の数行が書き込まれなくて困ってたけどclose()する前にflush()したら解決した
こういうこともあるのか

1041 名前:デフォルトの名無しさん [2019/03/09(土) 19:55:15.69 ID:ACok0wnJ0.net]
>>996
closeするときにflushを呼ばない行儀の悪いクラスを
PrintWriterでラッピングしてしまったのね
なんてクラスよ、晒しちゃいなよ!

1042 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 22:17:07.64 ID:SBBakmG00.net]
メッセージって業務クラスにベタ書きする?普通
メッセージのプロパティかそれ用のクラスにまとめるでしょ??
業務クラスにべた書きってありえなくないですか?

1043 名前:デフォルトの名無しさん [2019/03/09(土) 23:57:52.40 ID:ACok0wnJ0.net]
ケースバイケース

1044 名前:デフォルトの名無しさん [2019/03/09(土) 23:59:48.81 ID:ACok0wnJ0.net]
Java入門・初心者質問スレ Part.9
mevius.5ch.net/test/read.cgi/tech/1552143555/

1045 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 275日 3時間 42分 40秒



1046 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<295KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef