// Java class go.try_.Try is a proxy for talking to a Go program.
//   gobind -lang=java try
//
// File is generated by gobind. Do not edit.
package go.try_;

import go.Seq;

public abstract class Try {
    private Try() {} // uninstantiable
    
    public static String This() {
        go.Seq _in = new go.Seq();
        go.Seq _out = new go.Seq();
        String _result;
        Seq.send(DESCRIPTOR, CALL_This, _in, _out);
        _result = _out.readString();
        return _result;
    }
    
    private static final int CALL_This = 1;
    private static final String DESCRIPTOR = "try";
}
