[Ruby] self × Ruby É this × Java

V V ekvador777 на yahoo.com
Чт Дек 4 13:44:39 MSK 2003


Обращаюсь к специалистам :) в Ruby (и Java тоже :)))
Есть у меня такой примерчик на Java
-------------------------------------------
public class ISOMsg extends ISOComponent 
    implements Cloneable, Loggeable, Externalizable
{
    private WeakReference sourceRef;

    /**
     * Creates an ISOMsg
     */
    public ISOMsg () {
        fields = new Hashtable ();
        maxField = -1;
        dirty = true;
        maxFieldDirty=true;
        direction = 0;
        header = null;
    }
    /**
     * Creates a nested ISOMsg
     */
    public ISOMsg (int fieldNumber) {
        this();
        setFieldNumber (fieldNumber);
    }
------------------------------------------
С учетом того что Overload в Ruby отсутствует, мой
вариант на Ruby такой ...
------------------------------------------------
class Array
  def classes
    collect {|a| a.class}
  end
end

class ISOMsg < ISOComponent
    def initialize(*args)
    case args.classes
        when [Fixnum] # аналог public ISOMsg (int
fieldNumber)
            fieldNumber = args[0]
            self # Ruby вариант "this" в JAVA ???? 
            setFieldNumber(fieldNumber)
        else 
            if args.empty? # аналог public ISOMsg () 
            @fields = {}
            @maxField = -1
            dirty, maxFieldDirty = true
            direction = 0
            header = nil
            @installers = []
            end
    end
    end
end

Вообщем, при вызове self повторный вызов initialize не
происходит. :( Я конечно могу пойти таким образом
...
self.foo
...
def foo
....
end

но хочется обойтись без этого.

Что можете посоветовать ?

С Уважением,
Владислав




__________________________________
Do you Yahoo!?
Free Pop-Up Blocker - Get it now
http://companion.yahoo.com/


Подробная информация о списке рассылки Ruby