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

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

1
値を割り当てるときの奇妙なJavaの3値の動作。これが起こるためにJavaは舞台裏で何をしていますか?
数日前、私は、Javaが次のことをどのように、またはなぜ可能にするのかについてのドキュメントを見つけることができなかった興味深いシナリオに遭遇しました。(このスニペットは、バグを単純化したものです。) @Test public void test() { boolean bool = false; Integer intVal = Integer.valueOf(5); Long longVal = null; Long result = bool ? intVal : longVal; System.out.println(" > " + result); } 上記のスニペットで: bool = trueの場合、値は「5」になります。 しかし、bool = falseの場合、3項演算を評価しようとすると、nullポインタ例外が発生します。印刷ステートメントではありません。 これを修正するには、「結果」を次のように変更します Long result = bool ? Long.valueOf(intVal) : longVal; これを行うと、私が必要とする期待される動作が得られます: bool …

4
DockerコンテナのWildflyが起動しない
Windows 10 ProのDockerコンテナーで実行されているWildflyのウェルカムページにアクセスしようとしています。これは私がやったことです: 画像を引っ張った: docker pull jboss/wildfly Wildflyコンテナーを実行します(これは正常に機能します。Wildflyログでは、正しく開始されていることがわかります)。 docker run -it -p 8080:8080 jboss/wildfly コンテナIDを見つけます。 docker ps IPアドレスを検査します。 docker inspect -f "{{ .NetworkSettings.IPAddress }}" cac63ed21d78 IPアドレスはです。ブラウザでhttp://172.17.0.2:8080/172.17.0.2にアクセスしますが、ブラウザがハングしてタイムアウトします。何が欠けていますか? 更新 私も試したところ、127.0.0.1:8080うまくいきませんでした アップデート2 コンソールログ: docker --version #Docker version 19.03.1, build 74b1e89e8a docker run hello-world #Hello from Docker! docker run --detach --publish 8080:80 --name webserver …
10 java  docker  jboss  wildfly  devops 

1
BigDecimalがfloatまたはdoubleに正確に変換できるかどうかを知る方法は?
クラスにBigDecimalは、無損失の変換を保証するいくつかの便利なメソッドがあります。 byteValueExact() shortValueExact() intValueExact() longValueExact() しかし、方法floatValueExact()およびdoubleValueExact()存在しません。 メソッドfloatValue()とのOpenJDKソースコードを読みましたdoubleValue()。両方がそれぞれFloat.parseFloat()とにフォールバックしているように見え、Double.parseDouble()正または負の無限大を返す可能性があります。たとえば、10,000 9の文字列を解析すると、正の無限大が返されます。私が理解しているように、にBigDecimalは無限の内部概念はありません。さらに、100件のように9Sの文字列を解析double与える1.0E100無限大ではなく、精度を失います。 合理的な実装floatValueExact()とは何doubleValueExact()ですか? 私が考えたdouble組み合わせにより、溶液BigDecimal.doubleValue()、BigDecial.toString()、Double.parseDouble(String)そしてDouble.toString(double)、それは乱雑に見えます。もっと簡単な解決策があるかもしれないので、ここで質問したいと思います。 明確にするために、私は高性能ソリューションは必要ありません。
10 java  bigdecimal 

8
条件付きでストリームから最初の(インデックスが0の)要素を削除する
私は次のコードを持っています: Stream<String> lines = reader.lines(); "email"最初の文字列が等しい場合、ストリームから最初の文字列を削除します。ストリームの他の文字列については、このチェックは必要ありません。 どうすればそれを達成できますか? PS 確かに、それをリストに変換してから、オールドスクールforループを使用することもできますが、さらにストリームをもう一度必要とします。


2
Multi-Simデバイスでの着信コールのターゲットSimCardの検出
私はたくさんの投稿を読んで多くの解決策を試しましたが、すべての投稿の共通点は、それらがすべて古くなっており、少なくとも新しいバージョンのAndroidで動作する解決策が見つからなかったことです。 投稿1、結果: intent.getExtras().getInt("simId", -1)常に-1を返します 投稿2、結果:intent.getExtras().getInt("slot", -1)常に-1を返します 投稿3、結果: String[] array = new String[]{ "extra_asus_dial_use_dualsim", "com.android.phone.extra.slot", "slot", "simslot", "sim_slot", "subscription", "Subscription", "phone", "com.android.phone.DialingMode", "simSlot", "slot_id", "simId", "simnum", "phone_type", "slotId", "slotIdx" }; for (String item : array) { Log.i(TAG, "Sim Card - " + item + " -----> " + intent.getExtras().getInt(item)); } ログ: …

1
例外をキャッチして再スローするが、例外ではない
私は次のようなコードに遭遇しました: void run() { try { doSomething(); } catch (Exception ex) { System.out.println("Error: " + ex); throw ex; } } void doSomething() { throw new RuntimeException(); } このコードは私を驚かせます。- methodはそれをキャッチしてから再スローするため、をスローrun()できるように見えますが、メソッドがスローするように宣言されておらず、明らかにそうである必要はないからです。このコードは問題なくコンパイルされます(少なくともJava 11では)。ExceptionExceptionException 私の予想ではthrows Exception、- run()メソッドで宣言する必要があるでしょう。 追加情報 同様に、if doSomethingがスローするように宣言されている場合、キャッチされて再スローされても、-methodで宣言するIOExceptionだけで済みIOExceptionます。run()Exception void run() throws IOException { try { doSomething(); } catch (Exception ex) { System.out.println("Error: …
10 java  exception  throws 

6
Javaで指定されたマップ値から最新の日付を見つける方法
文字列データ型として日付を付けた値で、以下の値のハッシュマップがあります。マップで使用可能なすべての日付を比較し、非常に最近の日付を持つKey-Valueを1つだけ抽出します。 キーではなく値と比較したいのですが。 以下のコードを含めました import java.util.HashMap; import java.util.Map; public class Test { public static void main(String[] args) { Map<String, String> map = new HashMap<>(); map.put("1", "1999-01-01"); map.put("2", "2013-10-11"); map.put("3", "2011-02-20"); map.put("4", "2014-09-09"); map.forEach((k, v) -> System.out.println("Key : " + k + " Value : " + v)); } } これの予想される出力は次のとおりです。 キー4値2014-09-09

4
ストリームによる例外の処理
リストMap<String,List<String>>にMap<String,List<Long>>あるそれぞれStringがを表すので、私はそれを変えたいと思いますLong: Map<String,List<String>> input = ...; Map<String,List<Long>> output= input.entrySet() .stream() .collect(toMap(Entry::getKey, e -> e.getValue().stream() .map(Long::valueOf) .collect(toList())) ); 私の主な問題は、それぞれStringが正しく表示されない可能性があることLongです。何か問題があるかもしれません。Long::valueOf例外が発生する場合があります。この場合、nullまたは空を返したいMap<String,List<Long>> このoutputマップを繰り返し処理したいからです。しかし、エラー変換を受け入れることはできません。一つでもない。不正な文字列->長い変換の場合に空の出力を返す方法に関するアイデアはありますか?

3
目標org.codehaus.mojo:exec-maven-plugin:1.5.0:execの実行に失敗しました
3週間前、私はWebアプリケーションの作業を終えていました。すべてが問題なく実行されていました。 さて、3週間後、何も変更しなかったため(!!!)、アプリケーションを再度実行したかったのですが、今回は次のエラーメッセージが表示されました。 An error occurred while parsing the server response. Error message is: Provider org.glassfish.json.JsonProviderImpl not found Exception in thread "main" com.michael.optimizer.exceptions.JsonException: This is a general JSON error. Check logs for details.) at com.michael.optimizer.api.JsonRequest.doJsonRequest(JsonRequest.java:36) at com.michael.optimizer.api.StationApi.doJsonRequest(StationApi.java:150) at com.michael.optimizer.api.StationApi.areaSearch(StationApi.java:73) at com.michael.optimizer.Optimizer.main(Optimizer.java:23) Command execution failed. org.apache.commons.exec.ExecuteException: Process exited with an error: 1 …

4
Android 10でディレクトリを作成できません
Android 10でディレクトリを作成できません。AndroidOreoまではデバイスで動作します。 フォルダを作成する方法を2つ試しました。 使用 File.mkdir(): File f = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pastebin"); if (!f.isFile()) { if (!(f.isDirectory())) { success = f.mkdir(); } ここでは、変数success は常にfalseです。つまり、ディレクトリは作成されません。 使用 Files.createDirectory(): File f = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pastebin"); if (!f.isFile()) { if (!(f.isDirectory())) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { try { Files.createDirectory(Paths.get(f.getAbsolutePath())); } catch (IOException …
10 java  android 

2
Akkaストリームをアップストリームサービスに渡して入力する
アップストリームサービス(Azure Blobサービス)を呼び出して、データをOutputStreamにプッシュする必要があります。次に、それを反転させて、それをクライアントにプッシュする必要があります。akkaがなければ(そしてサーブレットコードだけ)、ServletOutputStreamを取得して、それをazureサービスのメソッドに渡します。 私がつまずくことを試みることができる最も近い、そして明らかにこれは間違っている、このようなものです Source<ByteString, OutputStream> source = StreamConverters.asOutputStream().mapMaterializedValue(os -> { blobClient.download(os); return os; }); ResponseEntity resposeEntity = HttpEntities.create(ContentTypes.APPLICATION_OCTET_STREAM, preAuthData.getFileSize(), source); sender().tell(new RequestResult(resposeEntity, StatusCodes.OK), self()); アイデアは、blobClient.download(os);を呼び出すことによって出力ストリームが入力されるように、上流のサービスを呼び出すことです。 ラムダ関数が呼び出されて返ってくるように見えますが、その後データや何かがないために失敗します。そのラムダ関数が機能するようになっているはずがないように見えますが、おそらく機能するオブジェクトを返しますか?わからない。 これはどのように行うのですか?

6
NetBeansのインストール中のエラーを修正する方法は?
Javaをインストールし、Windows 10にNetBeans 11.3をインストールしようとしていますが、exeを実行した後です。インストーラー、ポップアップエラーメッセージ: スレッドのメインjava.lang.NoClassDefFoundError java / util / jar / Pack200で予期しない例外が発生しました
9 java  netbeans 

4
HashMapの値を反復してコピーする効率的な方法
変換したい: Map<String, Map<String, List<Map<String, String>>>> inputMap に: Map<String, Map<String, CustomObject>> customMap inputMap構成で提供され、準備ができていますが、customMapフォーマットする必要があります。CustomObjectはList<Map<String, String>>、関数で数行のコードを使用することから派生します。 入力マップを反復し、customMapでキー値をコピーする通常の方法を試しました。Java 8または他のショートカットを使用してそれを行う効率的な方法はありますか? Map<String, Map<String, List<Map<String, String>>>> configuredMap = new HashMap<>(); Map<String, Map<String, CustomObj>> finalMap = new HashMap<>(); for (Map.Entry<String, Map<String, List<Map<String, String>>>> attributeEntry : configuredMap.entrySet()) { Map<String, CustomObj> innerMap = new HashMap<>(); for (Map.Entry<String, List<Map<String, String>>> valueEntry …

2
コレクションを安全にコピーするにはどうすればよいですか?
以前は、コレクションを安全にコピーすると次のようなことをするように言っていました。 public static void doThing(List<String> strs) { List<String> newStrs = new ArrayList<>(strs); または public static void doThing(NavigableSet<String> strs) { NavigableSet<String> newStrs = new TreeSet<>(strs); しかし、これらの「コピー」コンストラクター、同様の静的作成メソッドおよびストリームは本当に安全で、ルールはどこに指定されていますか?安全とは、Java言語によって提供される基本的なセマンティック整合性の保証と、悪意のある呼び出し元に対して適用されるコレクションSecurityManagerであり、妥当な手段でバックアップされ、欠陥がないことを前提としています。 私はこの方法を投げると幸せConcurrentModificationException、NullPointerException、IllegalArgumentException、ClassCastException、など、またはおそらくハング。 String不変の型引数の例として選択しました。この質問については、私は独自の落とし穴を持つ変更可能な型のコレクションのディープコピーには興味がありません。 (明確にするために、私はOpenJDKのソースコードを見て、とに対して何らかの回答をArrayListしましたTreeSet。)

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