0

私のフォームには 6 つのフィールドが含まれています: fName、lName、mName、age、sex、sal

ユーザーがすべての入力を完了することは期待できません。彼は入力を 3 つしか完了しないこともあれば、4 つしか入力しないこともあり、1 つしか入力しないこともあれば、すべて入力することもあり、予測することはできません。

値を持つ 6 つのプロパティすべてを持つ従業員 Bean があります。

ユーザーからのすべての入力を使用して、この従業員 Bean を検索したいと考えています。つまり、比較に使用するゲッターを動的に識別する必要があります。ユーザーが 3 つの入力しか与えていない場合は、それぞれのゲッターを比較にのみ使用する必要があります。

4

2 に答える 2

1

反射を使用できます。たとえば、ユーザーが年齢と性別を提供した場合、それらを呼び出して、指定された値と比較する必要がgetAge()あります。getSex()getter 名を構成するには、次のようなコードを使用します。

String getterName = "get" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);

これで、それを呼び出すことができます:

String value = String.valueOf(Person.getCalss().getMethod(getterName).invoke(person));

与えられた値と比較するだけです。

Bean アクセスを簡素化するライブラリを使用することもできます。たとえば、jakarta プロジェクトのBeanUtilsです。

于 2013-03-20T13:38:40.007 に答える
0

Hamcrest Matchers のようなものを使用できます。例えば:

String MATCH_ANY = "matchany83102176193580";

...

if (mName.equals(search.mName) || mName.equals(MATCH_ANY))
于 2013-03-20T13:38:03.703 に答える