public static class hiRef.V1<T> extends Object implements Serializable, AutoCloseable
引数に値を戻すための構造体です。
貧弱なJavaは引数に値を返す機能を持ちません。オブジェクトは全てポインタ渡し
なので、オブジェクトの値を変えることができれば、値を返すことが
できるのですが、Stringや各種primitiveラッパークラスには値を
セットするメソッドが用意されていません。
このため、値を返したいためだけに新たに値クラスを作成したり、
ひどい場合は、関数の脇に変数インターフェースを置くなど見苦しく
かつ危険な仕様を採用する場合もあります。
V1は、このような事態を避けるためのものです。
   private HashMap<String,String>  id_dict;
   private HashMap<String,Integer> sub_id_dict;
   public  String foo(String name,V1<Integer> sub_id)throws Exception{
      sub_id.value= sub_id_dict.get(name);// ここで返す値を設定している
      return id_dict.get(name);
      }
   //
   public void boo()throws Exception{
      String name;
      // nameに値セット
      V1<Integer> sub_id=new V1();
      String id= foo(name,sub_id);
      System.out.println("id="+id+" sub-id="+sub_id_value);
      }
残念ながら愚かなJavaの仕様のためprimitive型を直接置く V1<int> などは使えません。
public T value
public V1()
public V1(T val_)
val_ - valueにセットされるpublic String toString()
hiU.str(Object)で文字列化されます。public boolean equals(hiRef.V1<T> that)
2つのV1<T>のvalue同士をそれぞれequals()比較し 値が一致するかどうかを調べます。ともにnullの場合も一致としています。
that - 比較対象public void close()
close インタフェース内 AutoCloseablepublic T val()
public hiRef.V1 reset()