Loading ...
Sorry, an error occurred while loading the content.
 

Usando super() dentro de uma Inner class

Expand Messages
  • High, Timothy
    Gente, Estou tentando extender uma classe dentro de um JAR terceirizado e o problema é que ela tem uma classe Inner que também preciso modificar. Estou
    Message 1 of 2 , May 1, 2003
      Gente,

      Estou tentando extender uma classe dentro de um JAR terceirizado e o
      problema é que ela tem uma classe Inner que também preciso modificar. Estou
      fazendo o seguinte:

      package com.minha.empresa;
      import com.outra.empresa.OutraBean;

      public class MinhaBean extends OutraBean {
      class MinhaBean$Item extends OutraBean.Item {

      // Fields
      private String _minhaString;

      // Constructors
      protected MinhaBean$Item(OutraBean ob, String desc, String minhaString)
      {
      super( ob, desc );
      _minhaString = minhaString;
      }
      }

      onde OutraBean tem a definição:

      package com.outra.empresa;

      public class OutraBean {
      // Inner classes
      class OutraBean$Item {

      // Fields
      private String _desc;

      // Constructors
      protected OutraBean$Item(OutraBean ob, String desc) { }
      }

      O problema que estou encontrando é que na compilação, diz:

      "MinhaBean.java": Error #: 300 : constructor
      Item(com.minha.empresa.MinhaBean, com.outra.empresa.OutraBean,
      java.lang.String, java.lang.String) not found in class
      com.outra.empresa.OutraBean.Item at line 27, column 7

      Parece que está incluindo a classe Outer "MinhaBean" como o primeiro
      parâmetro sem eu o pedir! Alguém sabe porque, e como faço para resolvê-lo?

      Valeu!
      tim.

      _________________________
      Timothy High
      Senior Developer
      Boingo Wireless Inc.
      310-586-4328

      > Boingo Wireless -- ultra-high-speed wireless Internet
      ...visit http://www.boingo.com for more information
    • High, Timothy
      Gente, Acho que resolvi meu próprio problema. Eu tirei o parâmetro OutroBean da chamada a super(), e consegui compilar! Eu acho que deve ser porque Java
      Message 2 of 2 , May 1, 2003
        Gente,
        Acho que resolvi meu próprio problema. Eu tirei o parâmetro "OutroBean" da
        chamada a super(), e consegui compilar!

        Eu acho que deve ser porque Java automáticamente passa a instancia do objeto
        Outer junta com a chamada ao construtor. A representação em bytecode do
        método deve ser diferente do que se vê no source. Quando o JBuilder fez a
        descompilação da classe, se enganou e me mostrou o parâmetro escondido. Daí,
        quando eu copiei o método e inclui o Bean na chamada ao super(), não
        conseguiu achar um construtor que combinasse.

        Alguém pode acrescentar mais ao assunto?

        []'s,
        tim.

        -----Original Message-----
        From: High, Timothy [mailto:thigh@...]
        Sent: Thursday, May 01, 2003 3:19 PM
        To: riojug@yahoogroups.com
        Subject: [riojug] Usando super() dentro de uma Inner class


        Gente,

        Estou tentando extender uma classe dentro de um JAR terceirizado e o
        problema é que ela tem uma classe Inner que também preciso modificar. Estou
        fazendo o seguinte:

        package com.minha.empresa;
        import com.outra.empresa.OutraBean;

        public class MinhaBean extends OutraBean {
        class MinhaBean$Item extends OutraBean.Item {

        // Fields
        private String _minhaString;

        // Constructors
        protected MinhaBean$Item(OutraBean ob, String desc, String minhaString)
        {
        super( ob, desc );
        _minhaString = minhaString;
        }
        }

        onde OutraBean tem a definição:

        package com.outra.empresa;

        public class OutraBean {
        // Inner classes
        class OutraBean$Item {

        // Fields
        private String _desc;

        // Constructors
        protected OutraBean$Item(OutraBean ob, String desc) { }
        }

        O problema que estou encontrando é que na compilação, diz:

        "MinhaBean.java": Error #: 300 : constructor
        Item(com.minha.empresa.MinhaBean, com.outra.empresa.OutraBean,
        java.lang.String, java.lang.String) not found in class
        com.outra.empresa.OutraBean.Item at line 27, column 7

        Parece que está incluindo a classe Outer "MinhaBean" como o primeiro
        parâmetro sem eu o pedir! Alguém sabe porque, e como faço para resolvê-lo?

        Valeu!
        tim.

        _________________________
        Timothy High
        Senior Developer
        Boingo Wireless Inc.
        310-586-4328

        > Boingo Wireless -- ultra-high-speed wireless Internet
        ...visit http://www.boingo.com for more information



        Yahoo! Groups Sponsor
        ADVERTISEMENT




        -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        Rio Java User's Group (grupo oficial da SUCESU-RJ)

        O RioJUG é patrocinado por:
        (*) Journally Informática - http://www.journally.com.br

        -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
        Informações: http://groups.yahoo.com/group/riojug
        Enviar mensagens: riojug@yahoogroups.com
        Inscrever-se no grupo: riojug-subscribe@yahoogroups.com
        Retirar-se do grupo: riojug-unsubscribe@yahoogroups.com
        Falar com o Moderador: riojug-owner@yahoogroups.com
        -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


        Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
      Your message has been successfully submitted and would be delivered to recipients shortly.