問題タブ [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.

0 投票する
0 に答える
122 参照

java - JML は違反した前提条件をキャッチできません

私のクラス Test には、a という名前の 5 つの int の配列と、選択したセルに 1 を追加するメソッド addOne(int index) があります。メソッドに渡されるインデックスを制御するための単純な前提条件を JML で記述しました。次に、負のインデックスでメソッドを呼び出すこの前提条件に違反しようとしましたが、JML はこのエラーをキャッチできません。どうしたの?

これはテストクラスです:

そして、これはメインです:

それは例外をスローします: java.lang.ArrayIndexOutOfBoundsException: -2.

任意の JML メッセージ。

0 投票する
0 に答える
6974 参照

oracle - 前提条件列が存在します

liquibase 3.4.1 を使用して、Oracle の列の名前を大文字に変更したいと考えています (存在する場合)。何をしても、常に次のエラーが発生します。

私の前提条件は次のようになります。

私は以下を試しました: - objectQuotingStrategy の削除 - SQL チェックの追加:

なぜこれが起こるのか分かりますか?:/

0 投票する
3 に答える
829 参照

java - 連結文字列で Guava.Preconditions を使用すると、パフォーマンスに影響がありますか?

Preconditions私たちのコードでは、引数を次のようにチェックすることがよくあります。

しかし、このコードは非常に頻繁に呼び出されることがあります。これは、パフォーマンスに顕著な悪影響を与える可能性がありますか? 切り替えるべきか

?

(ほとんどの場合、条件が true になると思います。false はバグを意味します。)

0 投票する
5 に答える
1701 参照

java - Java: 弱い事前条件と強い事後条件、どのように?

置換原則に違反することなく、事前条件と事後条件がどのように機能する必要があるかを理解するのに非常に苦労しています。では、クラスがRectangleあり、Squareそれらを関連付ける方法を考えてみましょう。サブクラスにする必要があるのはどれですか?

したがって、a の事前条件はSubtypeより弱くなる可能性があることを理解しています。つまり、アウト サブクラスで主要な「セット」を取得できます。一方、事後条件はより強力になる可能性があるため、マイナーな「セット」を返すことができます。物事の。これらのルールを私の例に適用するにはどうすればよいですか?

ベースクラスはサブクラスよりも「行う」必要があることを読んだので、それはSquare私たちのベースクラスとサブクラスでなければならないと思いますRectangle。したがって、 の事前条件はSquareassert thatheight == widthである必要がありますが、 の事後条件と事前条件はRectangleどうでしょうか?

0 投票する
2 に答える
189 参照

java - コントローラーとサービスの間で同じメソッドの前提条件ロジックを共有しますか?

私はServiceとを持っていControllerます。

サービス内の各メソッドの前提条件。例:

また、Controller レイヤーには 2 つの方法があります。1 つはshowForm()、ユーザーが入力するフォームを表示する方法です。もう 1 つはdoApplyForm()、フォームを受け入れて下層を呼び出すものService.doSomething()です。

以下は疑似コードです (いくつかのBindingResult,attr.addFlashAttributeコードを削除しました) :

うまく機能しますが、満足していません。中には異臭が漂います。

問題は、showForm()と同じ前提条件を共有する にありController.doSomething()ます。

Service.doSomething()今後別の前提条件を追加する場合Controller.showForm()は、対応する変更を行う必要があります。

このような悪臭をなくすためのデザインパターンやフレームワークはあるのだろうか?

Java8 の機能的なソリューションは大歓迎です。

ありがとう。

0 投票する
3 に答える
936 参照

java - 前提条件を使用して特定の形式で日付を検証する

YYYY/MM/DD HH:MM:SS前提条件のGoogleグアバクラスを使用して検証する必要がある文字列形式の日付があります。私はcheckArgument他の多くの場所でメソッドを使用しています。checkArgumentメソッドを使用して検証startDateして、この形式のみであることを確認しYYYY/MM/DD HH:MM:SS、そうでない場合は、メッセージとともに IllegalArgumentException をスローする方法を教えてください。

ここでcheckArgumentメソッドを使用するにはどうすればよいですか?