タグ付けされた質問 「java」

Javaは人気のある高水準プログラミング言語です。言語自体の使用または理解に問題がある場合は、このタグを使用してください。このタグが単独で使用されることはめったになく、[spring]、[spring-boot]、[jakarta-ee]、[android]、[javafx]、[gradle]、および[maven]と組み合わせて使用​​されることがほとんどです。

3
オーバーロードされたメソッドにバイト引数を渡す
私はいくつかのクイズからこのコードスニペットを取得し、IDEを使用して実行し、長い結果を取得しましたが、正しい答えはByte、Byteです。なぜ別の結果を得たのですか?質問はJDK 11に関連しています public class Client { static void doCalc(byte... a) { System.out.print("byte..."); } static void doCalc(long a, long b) { System.out.print("long, long"); } static void doCalc(Byte s1, Byte s2) { System.out.print("Byte, Byte"); } public static void main(String[] args) { byte b = 5; doCalc(b, b); } } 編集: コードはここで取得されました:Oracle認定の概要とサンプルの質問 (ページ:13、質問:5)
12 java 

10
Spring boot 2.2.0 Spring HateOasの起動に関する問題
プロジェクトをSpring Boot 2.1.9から2.2.0に移動しました。プロジェクトの開始中、以下のerrorメッセージに直面しています。 何が原因でしたかhateoas、私のpom.xmlファイルでも使用していません。 Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'org.springframework.plugin.core.PluginRegistry<org.springframework.hateoas.client.LinkDiscoverer, org.springframework.http.MediaType>' available: expected single matching bean but found 17: modelBuilderPluginRegistry,modelPropertyBuilderPluginRegistry,typeNameProviderPluginRegistry,syntheticModelProviderPluginRegistry,documentationPluginRegistry,apiListingBuilderPluginRegistry,operationBuilderPluginRegistry,parameterBuilderPluginRegistry,expandedParameterBuilderPluginRegistry,resourceGroupingStrategyRegistry,operationModelsProviderPluginRegistry,defaultsProviderPluginRegistry,pathDecoratorRegistry,apiListingScannerPluginRegistry,relProviderPluginRegistry,linkDiscovererRegistry,entityLinksPluginRegistry Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'linkDiscoverers' defined in class path resource [org/springframework/hateoas/config/HateoasConfiguration.class]: Unsatisfied dependency expressed through method 'linkDiscoverers' parameter 0; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: …

3
Springブートでバージョン「2.0.0-alpha1」のorg.slf4jのログインを有効にする方法
SLF4Jロギングを使用してすべてのログを印刷しました。最新バージョンのorg.slf4jを使用しています。 実装 'org.slf4j:slf4j-api:2.0.0-alpha1' 実装 'org.slf4j:log4j-over-slf4j:2.0.0-alpha1' しかし、次のエラーが発生し、ログも出力されません。 SLF4J: No SLF4J providers were found. SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details. SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions prior to 1.8. SLF4J: Ignoring binding found at [jar:file:/home/user/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.2.3/7c4f3c474fb2c041d8028740440937705ebb473a/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#ignoredBindings for an explanation. ログは古いバージョン(1.7.25)で正常に動作しています。これらのログを印刷できるように、プロジェクトに追加または構成する必要があるものはありますか

3
Java 14のレコードと配列
次のコードがあるとします: public static void main(String[] args) { record Foo(int[] ints){} var ints = new int[]{1, 2}; var foo = new Foo(ints); System.out.println(foo); // Foo[ints=[I@6433a2] System.out.println(new Foo(new int[]{1,2}).equals(new Foo(new int[]{1,2}))); // false System.out.println(new Foo(ints).equals(new Foo(ints))); //true System.out.println(foo.equals(foo)); // true } 配列のことを、明らかに、そうですtoString、equals(、代わりに静的メソッドのメソッドが使用されているArrays::equals、Arrays::deepEquals またはArray::toString)。 したがって、Java 14 Records(JEP 359)は配列ではうまく機能しないと思います。それぞれのメソッドはIDEで生成する必要があります(少なくともIntelliJでは、デフォルトで「便利な」メソッドを生成します。つまり、静的メソッドを使用します)でArrays)。 または他の解決策はありますか?

3
複数の一致するターゲットタイプを持つラムダ式のメソッドシグネチャの選択
質問に答えていて、説明できないシナリオに出くわしました。このコードを考えてみましょう: interface ConsumerOne<T> { void accept(T a); } interface CustomIterable<T> extends Iterable<T> { void forEach(ConsumerOne<? super T> c); //overload } class A { private static CustomIterable<A> iterable; private static List<A> aList; public static void main(String[] args) { iterable.forEach(a -> aList.add(a)); //ambiguous iterable.forEach(aList::add); //ambiguous iterable.forEach((A a) -> aList.add(a)); //OK } } …
11 java  generics  lambda  javac  ecj 

3
Java並列ストリーム-parallel()メソッドを呼び出す順序[終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4日前休業。 AtomicInteger recordNumber = new AtomicInteger(); Files.lines(inputFile.toPath(), StandardCharsets.UTF_8) .map(record -> new Record(recordNumber.incrementAndGet(), record)) .parallel() .filter(record -> doSomeOperation()) .findFirst() これを書いたとき、並列はマップの後に配置されるため、スレッドはマップ呼び出しのみで生成されると想定しました。しかし、ファイルのいくつかの行は、実行ごとに異なるレコード番号を取得していました。 公式のJavaストリームドキュメントといくつかのWebサイトを読んで、ストリームが内部でどのように機能するかを理解しました。 いくつかの質問: Java並列ストリームは、ArrayList、LinkedListなどのすべてのコレクションによって実装されるSplitIteratorに基づいて機能します。これらのコレクションから並列ストリームを構築する場合、対応する分割イテレータを使用して、コレクションを分割および反復します。これは、マップの結果(つまり、レコードポジョ)ではなく、元の入力ソース(ファイル行)レベルで並列処理が発生した理由を説明しています。私の理解は正しいですか? 私の場合、入力はファイルIOストリームです。使用される分割イテレーターはどれですか? parallel()パイプラインのどこに配置してもかまいません。元の入力ソースは常に分割され、残りの中間操作が適用されます。 この場合、Javaは、ユーザーが元のソース以外のパイプラインの任意の場所に並列操作を配置できないようにする必要があります。それは、Javaストリームが内部でどのように機能するかを知らない人たちに間違った理解を与えているからです。私が知っているparallel()操作はStreamオブジェクトタイプのために、それがこのように働いている、ように定義されていたであろう。ただし、代替ソリューションを提供することをお勧めします。 上記のコードスニペットでは、入力ファイルのすべてのレコードに行番号を追加しようとしているので、順序付けする必要があります。ただし、doSomeOperation()ヘビーウェイトのロジックなので並行して適用したい。達成する1つの方法は、独自にカスタマイズした分割イテレーターを作成することです。他に方法はありますか?
11 java  java-stream 

5
4kを超える文字列から作成された述語でOracle clobを使用する
以下のOracle SELECT述語で使用するために、4000文字を超える文字列(file_dataバインド変数で提供)からCLOBを作成しようとしています。 myQuery= select * from dcr_mols WHERE flexmatch(ctab,:file_data,'MATCH=ALL')=1; TO_CLOB()ラウンドfile_dataを追加すると、varcharの悪名高いOracle 4k制限に失敗します(<4k文字列の場合は問題ありません)。エラー(SQL Developerの場合)は次のとおりです。 ORA-01460: unimplemented or unreasonable conversion requested 01460. 00000 - "unimplemented or unreasonable conversion requested" FYI flexmatch関数は分子の検索に使用され、ここで説明されています:http ://help.accelrysonline.com/ulm/onelab/1.0/content/ulm_pdfs/direct/developers/direct_2016_developersguide.pdf 関数自体は少し複雑ですが、本質は2番目のパラメーターがCLOBでなければなりません。したがって、私の質問は、4000文字を超えるJava文字列bind_variableをSQL(またはJava)のCLOBに変換する方法です。 私は以下を使用してJava(Spring boot 2)で以下の方法(CLOBを挿入するときに機能します)を試しました: MapSqlParameterSource parameters = new MapSqlParameterSource(); parameters.addValue("file_data", fileDataStr,Types.CLOB); jdbcNamedParameterTemplate.query(myQuery,parameters,… この方法は機能するはずですが、FYIである収束したflexmatchエラーで失敗します。 SQL state [99999]; error code [29902]; ORA-29902: error …

9
前後に1行でループ
これは興味深い質問だと思います。一方向にループできますが、同じ行で逆方向にループできますか?どういう意味か説明させてください。次にコード例を示します。 for(int i = 0; i < 5; i++) { // we all know the output will be 0,1,2,3,4 上記のステートメントを印刷できるように回避策があるかどうかを探しています0,1,2,3,4,3,2,1,0。
11 java 

2
Google Visionの検出領域の制限、テキスト認識
私は一日中解決策を模索してきました。私の問題に関していくつかのスレッドをチェックアウトしました。 カスタム検出オブジェクト バーコード追跡ウィンドウを減らす もっと... しかし、それは私にはあまり役に立ちませんでした。基本的に私はカメラプレビューがフルスクリーンであることを望みますが、テキストは四角形が描画される画面の中央でのみ認識されます。 私が使用しているテクノロジー: 光学式文字認識(OCR)用のGoogle Mobile Vision API 依存関係: play-services-vision 私の現在の状態: BoxDetectorクラスを作成しました: public class BoxDetector extends Detector { private Detector mDelegate; private int mBoxWidth, mBoxHeight; public BoxDetector(Detector delegate, int boxWidth, int boxHeight) { mDelegate = delegate; mBoxWidth = boxWidth; mBoxHeight = boxHeight; } public SparseArray detect(Frame frame) { …

6
forループの初期化で変数を宣言する必要があるのはなぜですか?
int v = 0; for (v; v<2; v++) { ... } なぜこれはJavaでは許可されないのですか? vforループの初期化で変数を宣言する必要があるのはなぜですか?私がそのようにする場合、それはステートメントではないことを知っていますが、Javaが上記を許可しないのはなぜですか?
11 java 

3
SQS maxNumberOfMessages
Javaクライアントアプリケーションを使用して、SQSキューにメッセージを照会しています。キューには、テスト用のセットアップとして12,000メッセージがあります。私はaws-java-sdk最新(software.amazon.awssdk 2.10.62)でopenJDKを使用しています。pom.xmlはさらに下に表示されます。 私が目にしている問題は、maxNumberOfMessages(10)を設定しても3しか得られないということです。これは最大数であり、メッセージ数を保証するものではないことを理解していますが、返されるメッセージ数に揺らぎはありません。常に3です。 AWSドキュメント: MaxNumberOfMessages返されるメッセージの最大数。Amazon SQSがこの値を超えるメッセージを返すことはありません(ただし、返されるメッセージが少ない場合があります)。有効な値:1〜10。デフォルト:1。タイプ:整数必須:いいえ ショートポーリングを使用したメッセージの消費 ショートポーリングを使用してキューからメッセージを消費すると、Amazon SQSはそのサーバーのサブセットを(重み付けランダム分布に基づいて)サンプリングし、それらのサーバーからのみメッセージを返します。したがって、特定のReceiveMessageリクエストがすべてのメッセージを返さない場合があります。ただし、キュー内のメッセージが1,000未満の場合、後続のリクエストはメッセージを返します。キューから消費し続けると、Amazon SQSがそのすべてのサーバーをサンプリングし、すべてのメッセージを受信します。 したがって、古いaws sdkと新しいaws sdkの両方を使用して、Javaで2つのクライアントをテストしたところ、同じ結果が得られました。常に3つのメッセージのみが返されます。 興味深いことに、アプリケーションを外部(私の強力なデスクトップ上)で実行する代わりに、AWS Lambdaとして実行すると、10のメッセージが表示されます。このラムダテストは、同僚がJavaScriptを使用して行ったものです。 したがって、疑問が残るのは、なぜ要求ごとに3つのメッセージしか取得せず、ラムダ内で10を取得できるように見えるのかということです。 リクエストあたりのコストがあるとすると、Amazonの利益に基づいて重み付けされたランダム分布になります=)) SQSテスト方法: public void SQStart() { AwsBasicCredentials awsCreds = AwsBasicCredentials.create("accessKeyID", "secretKeyID"); AwsCredentialsProvider creds = StaticCredentialsProvider.create(awsCreds); SqsClient sqs = SqsClient.builder().credentialsProvider(creds).region(Region.EU_WEST_1).build(); GetQueueUrlRequest getQueueRequest = GetQueueUrlRequest.builder() .queueName(QUEUE_NAME) .build(); String queueUrl = sqs.getQueueUrl(getQueueRequest).queueUrl(); for (int x =1; x …

8
androidsdk.modulesが見つかりませんでした
そのため、プログラムの実行中に、build.gradleがこのエラーで失敗しました。つまり、実際には1秒前に機能し、1秒後には機能しませんでした。私はグラドルで何も変更しませんでした。 Could not find androidsdk.modules:shield:unspecified. Required by: project :app > com.facebook.android:facebook-login:5.15.2 project :app > com.facebook.android:facebook-core:5.15.2 project :app > com.facebook.android:facebook-common:5.15.2 Search in build.gradle files これが私のグラドルです。 apply plugin: 'com.android.application' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-android' android { compileSdkVersion 28 buildToolsVersion "29.0.2" defaultConfig { multiDexEnabled true applicationId "com.example.casualdatingapp" minSdkVersion 26 targetSdkVersion 28 versionCode …

3
Aがaの前に、Bがbの前にくるカスタムソート
私はこのような色のリストを持っています: ピンク、ブルー、レッド、ブルー、グレー、グリーン、パープル、ブラック... etc List<String> listOfColors = Arrays.asList("Pink", "Blue", "Red", "blue", "Grey", "green", "purple", "black"); いくつかの果物の色をフィルタリングするようないくつかの中間的な操作があります。今、私はそれらを順番にソートしたいフィルタリングされた結果を残しています: ブルー、ブラック、ブルー、グレー、グリーン、ピンク、パープル、レッド 私が試してみました : List<String> collect = listOfColors.stream().sorted(String::compareToIgnoreCase) .collect(Collectors.toList()); 期待どおりに動作しません。 出力は次のとおりです。 ブラック、ブルー、ブルー、グリーン、グレー、ピンク、パープル、レッド 私は以下が欲しい: ブルー、ブラック、ブルー、グレー、グリーン、ピンク、パープル、レッド

5
Javaで1年の合計週を見つける方法は?
私はプロジェクトに取り組んでいます。そこで、私は1年の合計週を見つける必要があります。次のコードを試してみましたが、間違った答えが返ってきました。2020年は53週間ですが、このコードでは52週間になります。 このコードのどこが間違っていますか? package com.hib.mapping; import java.time.LocalDate; import java.time.temporal.WeekFields; import java.util.Calendar; import java.util.GregorianCalendar; import org.joda.time.DateTime; public class TestWeek { public static void main(String args[]) { System.out.println(getWeeks()); } public static int getWeeks() { Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, 2020); cal.set(Calendar.MONTH, Calendar.JANUARY); cal.set(Calendar.DAY_OF_MONTH, 1); GregorianCalendar gregorianCalendar = new GregorianCalendar(); int weekDay = cal.get(Calendar.DAY_OF_WEEK) …

3
httpurlconnection multipart / form-dataを使用してarraylistをアップロードします
Arraylistライブラリを使用せずに画像をサーバーにアップロードする必要があります。私はAsynctask単一の画像のアップロードに使用しており、httpurlconnection multipart / form-dataの助けを借りて完全に機能しています。今、私は使用してコードを変更して任意のタイプの複数のファイルをアップロードする必要がありますArraylist<String>が、私の問題は、既存のコードがFileinputStreamarraylistをサポートしておらず、Fileinputstreamarraylistをサーバーにアップロードする代わりに何を使用するべきかわからないためですこのために任意のライブラリを使用したい。 public class multipart_test extends AsyncTask<Void,Void,String> { Context context; String Images; public static final String TAG = "###Image Uploading###"; public multipart_test(Context context,String Upload_Images) { this.context = context; this.Images = Upload_Images; } @Override protected String doInBackground(Void... params) { BufferedReader reader; String WebPath = null; try { String lineEnd …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.