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

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

7
JavaのassertEqualsメソッドは信頼できますか?
==2つを比較すると、いくつかの問題があることがわかりStringsます。それString.equals()はより良いアプローチのようです。さて、私はJUnitテストを行っており、私の傾向はを使用することassertEquals(str1, str2)です。これは、2つの文字列に同じコンテンツが含まれていることをアサートする信頼できる方法ですか?私はを使用しassertTrue(str1.equals(str2))ますが、失敗した場合の期待値と実際の値を確認するメリットはありません。 関連するノートでは、誰もが問題を明確に説明しているページまたはスレッドへのリンクを持っていますかstr1 == str2?
199 java  string  junit  junit4 

9
Spring、Struts、Hibernate、JavaServer Faces、Tapestryの違いは何ですか?
違いは何ですか?- 春 Struts ストラット2 ハイバネート JavaServer Faces JavaServer Pages タペストリー これらのテクノロジー/フレームワークは相互に補完的ですか?または、それらはお互いの代替品です(私はそれらの1つを使用した後、もう1つを使用する必要はありません)? ありがとう。

10
Hibernateのさまざまな保存方法の違いは何ですか?
Hibernateには、何らかの方法でオブジェクトを取得してデータベースに格納するメソッドがいくつかあります。それらの違いは何ですか?いつ使用するのですか?なぜ何を使用するかを知るインテリジェントな方法が1つだけではないのはなぜですか? これまでに確認した方法は次のとおりです。 save() update() saveOrUpdate() saveOrUpdateCopy() merge() persist()

14
Java List.contains(フィールド値がxに等しいオブジェクト)
List特定の値のフィールドを持つオブジェクトがに含まれているかどうかを確認したいと思います。これで、ループを使用してチェックを行うことができましたが、もっと効率的なコードがあるかどうか知りたいと思いました。 何かのようなもの; if(list.contains(new Object().setName("John"))){ //Do some stuff } 上記のコードは何も実行しないことを知っています。これは、私が達成しようとしていることを大まかに示すためです。 また、明確にするために、単純なループを使用したくない理由は、このコードは現在、ループ内のループ内にあるループ内に移動するためです。読みやすくするために、これらのループにループを追加し続けたくありません。だから私は、何かシンプルな方法があるのか​​と思いました。
199 java  list  search  contains 


3
パッケージなしでクラスの名前を取得するにはどうすればよいですか?
C#では、私たちは持っているType.FullNameとType.Name、名前空間(javaの世界でのパッケージ)の有無にかかわらずタイプ(この場合はクラス)の名前を取得するため。 Javaは何に相当しType.Nameますか? 明らかにClass.getName()、手動で使用してパッケージ名を取り除くよりも優れた方法があるはずです。
199 java 

10
フォルダーが存在するかどうかを確認する方法
新しいJava 7 IO機能で少し遊んでいますが、実際にはフォルダーのすべてのxmlファイルを受信しようとしています。しかし、これはフォルダーが存在しないときに例外をスローします。新しいIOでフォルダーが存在するかどうかを確認するにはどうすればよいですか? public UpdateHandler(String release) { log.info("searching for configuration files in folder " + release); Path releaseFolder = Paths.get(release); try(DirectoryStream<Path> stream = Files.newDirectoryStream(releaseFolder, "*.xml")){ for (Path entry: stream){ log.info("working on file " + entry.getFileName()); } } catch (IOException e){ log.error("error while retrieving update configuration files " + e.getMessage()); } …
199 java 

5
JavaでのByteBufferの用途は何ですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 5年前休業。 この質問を改善する ByteBufferJavaのサンプルアプリケーションは何ですか?これが使用されているシナリオの例を挙げてください。ありがとうございました!
199 java  buffer  bytebuffer 

8
Spring Bootのapplication.propertiesでenv変数を使用する
私たちはSpring Boot Webアプリに取り組んでおり、使用しているデータベースはMySqlです。 私たちの設定は、最初にローカルでテストすることです(つまり、PCにMySqlをインストールする必要があります)。 次に、Bitbucketにプッシュします。 JenkinsはBitbucketへの新しいプッシュを自動的に検出し、それに基づいてビルドを実行します(Jenkins mvn buildをパスするには、Jenkinsを実行している仮想マシンにMySqlをインストールする必要もあります)。 Jenkinsビルドが成功した場合、OpenShiftのアプリケーションにコードをプッシュします(JenkinsのOpenshiftデプロイメントプラグインを使用)。 あなたがすでにそれを理解しているかもしれないので、私たちが抱えている問題は次のとおりです: でapplication.properties我々のハードコードMySQLの情報はできません。プロジェクトは3つの異なる場所(local、Jenkins、およびOpenShift)で実行されるため、データソースフィールドを動的にする必要がありますapplication.properties(これにはさまざまな方法があることはわかっていますが、今のところこのソリューションに取り組んでいます)。 spring.datasource.url = spring.datasource.username = spring.datasource.password = 私たちが思いついた解決策は、ローカルおよびJenkins vmでシステム環境変数を作成し(OpenShiftがそれらに名前を付けるのと同じ方法でそれらに名前を付け)、それぞれに適切な値を割り当てることです: export OPENSHIFT_MYSQL_DB_HOST="jdbc:mysql://localhost" export OPENSHIFT_MYSQL_DB_PORT="3306" export OPENSHIFT_MYSQL_DB_USERNAME="root" export OPENSHIFT_MYSQL_DB_PASSWORD="123asd" 私たちはこれを実行し、それは機能します。またMap<String, String> env = System.getenv();、環境変数を次のようにJava変数にできることを確認しました。 String password = env.get("OPENSHIFT_MYSQL_DB_PASSWORD"); String userName = env.get("OPENSHIFT_MYSQL_DB_USERNAME"); String sqlURL = env.get("OPENSHIFT_MYSQL_DB_HOST"); String sqlPort = env.get("OPENSHIFT_MYSQL_DB_PORT"); 今残っているのは、これらのJava変数を使用する必要があることだけですapplication.properties。それが問題です。 どのフォルダには、どのように、私たちが割り当てる必要がありませんpassword、userName、sqlURL、およびsqlPortのための変数application.propertiesにそれらを見て、どのように我々はそれらを含めないことができるようにするのapplication.properties? …

14
Javaで2つのXMLドキュメントを比較する最良の方法
基本的にカスタムメッセージ形式をXMLメッセージに変換し、それを相手側に送信するアプリケーションの自動テストを記述しようとしています。入力/出力メッセージのペアの適切なセットがあるので、必要なのは、入力メッセージを送信し、XMLメッセージが相手側から送信されるのをリッスンすることだけです。 実際の出力と期待される出力を比較するときが来たとき、いくつかの問題が発生しています。私の最初の考えは、期待されるメッセージと実際のメッセージで文字列比較を行うことだけでした。私たちが持っている例のデータは常に一貫してフォーマットされているわけではなく、XMLネームスペースに異なるエイリアスが使用されることがよくあります(時にはネームスペースがまったく使用されないこともあります)。 両方の文字列を解析し、各要素を調べて自分で比較できることはわかっています。これはそれほど難しくはありませんが、より良い方法や活用できるライブラリがあると感じています。 要約すると、問題は次のとおりです。 どちらも有効なXMLを含む2つのJava文字列が与えられた場合、それらが意味的に等しいかどうかをどのように判断しますか?違いを判断する方法がある場合のボーナスポイント。

10
Junit TestのデフォルトのSpring-Boot application.properties設定を上書きする
デフォルトのプロパティがapplication.propertiesクラスパス(src / main / resources / application.properties)のファイルに設定されているSpring-Bootアプリケーションがあります。 JUnitテストのいくつかのデフォルト設定を、test.propertiesファイル(src / test / resources / test.properties)で宣言されたプロパティで上書きしたい 私は通常、Junitテスト用の専用のConfigクラスを持っています。 package foo.bar.test; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @Configuration @Import(CoreConfig.class) @EnableAutoConfiguration public class TestConfig { } @PropertySource("classpath:test.properties")TestConfigクラスで使用するとうまくいくと最初に思いましたが、これらのプロパティはapplication.properties設定を上書きしません(Spring-Boot Reference Doc- 23. Externalized Configurationを参照)。 次に-Dspring.config.location=classpath:test.properties、テストを呼び出すときに使用してみました。これは成功しました。ただし、テストの実行ごとにこのシステムプロパティを設定したくありません。したがって、私はそれをコードに入れました @Configuration @Import(CoreConfig.class) @EnableAutoConfiguration public class TestConfig { static { System.setProperty("spring.config.location", "classpath:test.properties"); } …

16
Java:System.exit()を呼び出すメソッドをテストする方法は?
System.exit()特定の入力を呼び出す必要があるいくつかのメソッドがあります。残念ながら、これらのケースをテストすると、JUnitが終了します。System.exit()現在のスレッドだけでなく、JVMを終了するため、メソッド呼び出しを新しいスレッドに配置しても効果がないようです。これに対処するための一般的なパターンはありますか?たとえば、スタブを代用できSystem.exit()ますか? [編集]問題のクラスは、実際には私がJUnit内でテストしようとしているコマンドラインツールです。たぶんJUnitは単に仕事に適したツールではありませんか?補完的な回帰テストツールの提案を歓迎します(できれば、JUnitやEclEmmaとうまく統合できるものが望ましい)。

23
Java「ラムダ式はこの言語レベルではサポートされていません」
ここに示すように、Java 8のいくつかの新機能をテストし、サンプルをIDE(元々はEclipse、次にIntelliJ)にコピーしました Eclipseはラムダ式をまったくサポートしていません。IntelliJはエラーを報告し続けました ラムダ式はこの言語レベルではサポートされていません これがインストール、コード、またはサポートの問題かどうかを知りたいのですが。



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