フォームのメインクラスを抽出:
Client k = getClient();
Truster kg = new Truster();
boolean ok = false;
while (!ok) {
System.out.print("\n name: ");
//io: is a class for my input from Keyboard
kg.setName(io.readString()); // <--need the input from here
//argu_vali is my ValidationClass
if (argu_vali.analyse(k, "mylist") == 0) {
ok = true;
}
}
ok = false;
while (!ok) {
System.out.print("\n: ");
kg.setSumme(io.readInteger());
if (argu_vali.analyse(kg, "sum") == 0) {
ok = true;
}
}
k.add_credit(kg);
私のクラス クライアント:
class Client{
String name;
@t_list_Check
private ArrayList <truster> t_list= new ArrayList<>();
}
私のクラスの信頼者:
class Truster{
String name;
@Min(0)
int sum;
}
私自身の t_list の ValidatorClass:
public class t_list_Validator implements ConstraintValidator<t_list_Check, Collection> {
@Override
public void initialize(t_list_Check a) {
}
@Override
public boolean isValid(Collection kg_list, ConstraintValidatorContext cvc) {
Object[] objects = kg_list.toArray();
if (objects.length < 1) {
return true;
}
String new_name = objects[objects.length-1].toString(); //<---need here the
//right input from above
for (Object o : kg_list) {
if (new_name.equals(o.toString())) {
return false;
}
}
return true;
}
}
私の問題は、 の最初の要素の正しい名前を取得することt_list
です。kg.setName(io.readString());
信頼者 ( )の 2 番目の入力については、実際の要素ではなく、最後の要素から受け取っobjects[objects.length-1].toString()
ています。ownValidator
t_list
例えば:
- 1.実行:
- メインの入力: test1
- t_list_Validator の値 new_name: test1
...
- 2.実行:
- メインの入力: テスト 2
- value new_name in t_list_Validator: test1 // ここに実際の入力が必要です: "test2"