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

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

11
効果的なJavaのビルダーパターン
私は最近、Joshua BlochによるEffective Javaを読み始めました。Builderパターン[本の項目2]のアイデアは本当に興味深いものでした。プロジェクトに実装しようとしましたが、コンパイルエラーが発生しました。以下は本質的に私がやろうとしていたことです: 複数の属性を持つクラスとそのビルダークラス: public class NutritionalFacts { private int sodium; private int fat; private int carbo; public class Builder { private int sodium; private int fat; private int carbo; public Builder(int s) { this.sodium = s; } public Builder fat(int f) { this.fat = f; return this; } public …


6
違いは何ですか ?とJavaジェネリックのオブジェクト?
私はEclipseを使用して、Javaジェネリックを適切に使用するためにいくつかのコードをクリーンアップしています。ほとんどの場合、それは型を推論する優れた仕事をしていますが、推論された型が可能な限り一般的でなければならない場合があります:オブジェクト。しかし、Eclipseは、オブジェクトのタイプと「?」のタイプの間で選択するオプションを私に与えているようです。 だから違いは何ですか: HashMap<String, ?> hash1; そして HashMap<String, Object> hash2;
137 java  generics 

8
値によるツリーマップのソート
デフォルトの自然順ではなく、値によってTreeMapをソートできるコンパレータを作成したいと思います。 私はこのようなことを試しましたが、何がうまくいかなかったのかわかりません: import java.util.*; class treeMap { public static void main(String[] args) { System.out.println("the main"); byValue cmp = new byValue(); Map<String, Integer> map = new TreeMap<String, Integer>(cmp); map.put("de",10); map.put("ab", 20); map.put("a",5); for (Map.Entry<String,Integer> pair: map.entrySet()) { System.out.println(pair.getKey()+":"+pair.getValue()); } } } class byValue implements Comparator<Map.Entry<String,Integer>> { public int compare(Map.Entry<String,Integer> e1, Map.Entry<String,Integer> …
137 java 


9
&&(AND)および|| (OR)IFステートメント内
私は次のコードを持っています: if(!partialHits.get(req_nr).containsKey(z) || partialHits.get(req_nr).get(z) < tmpmap.get(z)){ partialHits.get(z).put(z, tmpmap.get(z)); } partialHitsHashMapはどこですか。最初のステートメントが真実の場合はどうなりますか? Javaは2番目のステートメントを引き続きチェックしますか?最初のステートメントがtrueになるためには、HashMapに指定されたキーが含まれていてはならないため、2番目のステートメントがチェックされている場合はを取得しNullPointerExceptionます。 簡単に言えば、次のコードがある場合 if(a && b) if(a || b) Javaはチェックするb場合はa最初のケースではとの場合はfalseをされたa第二の場合には本当ですか?
137 java  if-statement 

5
Mockitoを使用する場合のモッキングとスパイの違いは何ですか?
Mockitoスパイの使用のユースケースは何ですか? callRealMethodを使用すると、すべてのスパイのユースケースをモックで処理できるように思えます。 私が見ることができる1つの違いは、ほとんどのメソッド呼び出しを実際のものにしたい場合、モック対スパイを使用するためにコードのいくつかの行を節約することです。それですか、それとも全体像が欠けていますか?
137 java  testing  mocking  mockito 

8
HashSet / HashMapに重複する値を追加すると、以前の値が置き換えられますか
以下のコードを検討してください: HashSet hs = new HashSet(); hs.add("hi"); -- (1) hs.add("hi"); -- (2) hs.size()HashSet重複を許可しないので1を与えるため、1つの要素のみが保存されます。 重複した要素を追加するかどうかを知りたい場合、前の要素を置き換えますか、それとも単に追加しませんか? また、HashMap同じケースを使用するとどうなりますか?

6
JavaではオプションのorElse
私はJava 8で新しいOptional型を使用していて、機能的にサポートされていない一般的な操作のように思われるものに遭遇しました:「orElseOptional」 次のパターンを考えてみます。 Optional<Result> resultFromServiceA = serviceA(args); if (resultFromServiceA.isPresent) return result; else { Optional<Result> resultFromServiceB = serviceB(args); if (resultFromServiceB.isPresent) return resultFromServiceB; else return serviceC(args); } このパターンには多くの形式がありますが、結局のところ、現在のものが存在しない場合にのみ呼び出される、新しいオプションを生成する関数を取るオプションの「orElse」が必要になります。 実装は次のようになります。 public Optional<T> orElse(Supplier<Optional<? extends T>> otherSupplier) { return value != null ? this : other.get(); } そのようなメソッドが存在しない理由があるのか​​、意図せずにOptionalを使用しているだけなのか、そしてこのケースに対処するために人々が他にどのようにしてきたのか、私は興味があります。 私のコードで作業している人々は必ずしもそれらが存在することを知っているとは限らないため、カスタムユーティリティクラス/メソッドを含むソリューションはエレガントではないと思います。 また、誰かが知っている場合、そのようなメソッドはJDK 9に含まれますか?また、どこでそのようなメソッドを提案できますか?これは、APIのかなりの省略のように思えます。
137 java  lambda  java-8  optional  java-9 


11
Spring MVC-Rest Controllerで単純な文字列をJSONとして返す方法
私の質問は基本的にこの質問のフォローアップです。 @RestController public class TestController { @RequestMapping("/getString") public String getString() { return "Hello World"; } } 上記では、Springは「Hello World」を応答本文に追加します。文字列をJSON応答として返すにはどうすればよいですか?引用符を追加できることは理解していますが、それはハックのように感じられます。 この概念の説明に役立つ例を提供してください。 注:これをHTTP応答本文に直接書きたくはありません。文字列をJSON形式で返したいです(有効なJSON形式の応答を必要とするRestyGWTでコントローラーを使用しています)。
137 java  json  spring  rest  spring-mvc 

16
メソッドの静的インポートの良いユースケースは何ですか?
メソッドの静的インポートは良いアイデアではなかったというレビューコメントを受け取りました。静的インポートは、ほとんどが静的メソッドを持つDAクラスからのメソッドのインポートでした。そのため、ビジネスロジックの途中で、どうやら現在のクラスに属しているように見えるdaアクティビティがありました。 import static some.package.DA.*; class BusinessObject { void someMethod() { .... save(this); } } レビュー担当者は、私がコードを変更することには熱心ではなく、変更しませんでしたが、私は彼にある程度同意します。静的インポートではない理由の1つは、メソッドが定義された場所がわかりにくく、現在のクラスではなく、スーパークラスでもないため、定義を特定するのに時間がかかりすぎたためです(Webベースのレビューシステムにはクリック可能ではありません) IDEのようなリンク:-)これは問題だとは思いません。静的インポートはまだ非常に新しく、すぐにそれらを見つけることに慣れるでしょう。 しかし、私が同意するもう1つの理由は、修飾されていないメソッド呼び出しは現在のオブジェクトに属しているようであり、コンテキストをジャンプするべきではないということです。しかし、もしそれが本当に属していたなら、そのスーパークラスを拡張することは理にかなっています。 だから、ときんそれは、静的インポート方法に意味をなさない?いつやったの?修飾されていない呼び出しがどのように見えるか、好きですか? 編集:誰もが現在のクラスのメソッドとしてそれらを混乱させるつもりがない場合、人気のある意見は静的インポートメソッドであるようです。たとえば、java.lang.Mathおよびjava.awt.Colorのメソッドの例です。しかし、absとgetAlphaがあいまいでなければ、readEmployeeがなぜなのかわかりません。多くのプログラミングの選択と同様に、これも個人的な好みの問題だと思います。 ご回答ありがとうございます。質問を締めくくります。

14
N秒でMリクエストへのスロットリングメソッド呼び出し
一部のメソッドの実行をN秒で最大M回の呼び出しに制限するコンポーネント/クラスが必要です(またはmsかnanosでも構いません)。 つまり、メソッドがN秒のスライディングウィンドウでM回以上実行されないようにする必要があります。 既存のクラスがわからない場合は、ソリューション/アイデアをどのように実装するかを自由に投稿してください。
137 java  throttling 

9
「リスト型の式にはチェックされていない変換が必要です...」を修正するにはどうすればよいですか?
Javaスニペットでは: SyndFeedInput fr = new SyndFeedInput(); SyndFeed sf = fr.build(new XmlReader(myInputStream)); List<SyndEntry> entries = sf.getEntries(); 最後の行は警告を生成します 「型の式Listに準拠するには、チェックされていない変換が必要ですList<SyndEntry>」 これを修正する適切な方法は何ですか?

6
Javaストリームでは、デバッグのみを目的としていますか?
私はJavaストリームについて読んでいて、進むにつれて新しいものを発見しています。私が見つけた新しいものの1つはpeek()機能でした。私がピークで読んだほとんどすべては、それをストリームのデバッグに使用する必要があると述べています。 各アカウントにユーザー名、パスワードフィールド、login()メソッドとlogsIn()メソッドが含まれるストリームがある場合はどうなりますか。 私も持っています Consumer<Account> login = account -> account.login(); そして Predicate<Account> loggedIn = account -> account.loggedIn(); なぜこれがそんなに悪いのでしょうか? List<Account> accounts; //assume it's been setup List<Account> loggedInAccount = accounts.stream() .peek(login) .filter(loggedIn) .collect(Collectors.toList()); 今、私が知る限り、これは意図したとおりに動作します。それ; アカウントのリストを取得します 各アカウントへのログインを試みます ログインしていないアカウントを除外します ログインしたアカウントを新しいリストに収集します このようなことの欠点は何ですか?続行しない理由はありますか?最後に、このソリューションでない場合はどうなりますか? これの元のバージョンは、次のように.filter()メソッドを使用しました。 .filter(account -> { account.login(); return account.loggedIn(); })
137 java  java-8  java-stream  peek 

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