問題タブ [preconditions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JML は違反した前提条件をキャッチできません
私のクラス Test には、a という名前の 5 つの int の配列と、選択したセルに 1 を追加するメソッド addOne(int index) があります。メソッドに渡されるインデックスを制御するための単純な前提条件を JML で記述しました。次に、負のインデックスでメソッドを呼び出すこの前提条件に違反しようとしましたが、JML はこのエラーをキャッチできません。どうしたの?
これはテストクラスです:
そして、これはメインです:
それは例外をスローします: java.lang.ArrayIndexOutOfBoundsException: -2.
任意の JML メッセージ。
oracle - 前提条件列が存在します
liquibase 3.4.1 を使用して、Oracle の列の名前を大文字に変更したいと考えています (存在する場合)。何をしても、常に次のエラーが発生します。
私の前提条件は次のようになります。
私は以下を試しました: - objectQuotingStrategy の削除 - SQL チェックの追加:
なぜこれが起こるのか分かりますか?:/
java - 連結文字列で Guava.Preconditions を使用すると、パフォーマンスに影響がありますか?
Preconditions
私たちのコードでは、引数を次のようにチェックすることがよくあります。
しかし、このコードは非常に頻繁に呼び出されることがあります。これは、パフォーマンスに顕著な悪影響を与える可能性がありますか? 切り替えるべきか
?
(ほとんどの場合、条件が true になると思います。false はバグを意味します。)
java - Java: 弱い事前条件と強い事後条件、どのように?
置換原則に違反することなく、事前条件と事後条件がどのように機能する必要があるかを理解するのに非常に苦労しています。では、クラスがRectangle
あり、Square
それらを関連付ける方法を考えてみましょう。サブクラスにする必要があるのはどれですか?
したがって、a の事前条件はSubtype
より弱くなる可能性があることを理解しています。つまり、アウト サブクラスで主要な「セット」を取得できます。一方、事後条件はより強力になる可能性があるため、マイナーな「セット」を返すことができます。物事の。これらのルールを私の例に適用するにはどうすればよいですか?
ベースクラスはサブクラスよりも「行う」必要があることを読んだので、それはSquare
私たちのベースクラスとサブクラスでなければならないと思いますRectangle
。したがって、 の事前条件はSquare
assert thatheight == width
である必要がありますが、 の事後条件と事前条件はRectangle
どうでしょうか?
java - コントローラーとサービスの間で同じメソッドの前提条件ロジックを共有しますか?
私はService
とを持っていController
ます。
サービス内の各メソッドの前提条件。例:
また、Controller レイヤーには 2 つの方法があります。1 つはshowForm()
、ユーザーが入力するフォームを表示する方法です。もう 1 つはdoApplyForm()
、フォームを受け入れて下層を呼び出すものService.doSomething()
です。
以下は疑似コードです (いくつかのBindingResult
,attr.addFlashAttribute
コードを削除しました) :
うまく機能しますが、満足していません。中には異臭が漂います。
問題は、showForm()
と同じ前提条件を共有する にありController.doSomething()
ます。
Service.doSomething()
今後別の前提条件を追加する場合Controller.showForm()
は、対応する変更を行う必要があります。
このような悪臭をなくすためのデザインパターンやフレームワークはあるのだろうか?
Java8 の機能的なソリューションは大歓迎です。
ありがとう。
java - 前提条件を使用して特定の形式で日付を検証する
YYYY/MM/DD HH:MM:SS
前提条件のGoogleグアバクラスを使用して検証する必要がある文字列形式の日付があります。私はcheckArgument
他の多くの場所でメソッドを使用しています。checkArgument
メソッドを使用して検証startDate
して、この形式のみであることを確認しYYYY/MM/DD HH:MM:SS
、そうでない場合は、メッセージとともに IllegalArgumentException をスローする方法を教えてください。
ここでcheckArgumentメソッドを使用するにはどうすればよいですか?