Boa noite, estou com um problema no Granite, quando tenho um atributo
na minha classe java do tipo String consigo acessa-lo tanto faz se ele
é public ou private, porém quando tenho um atributo do tipo Filhos(um
classe criada por mim) só consigo acessar se a minha instancia de
filhos for public....

Alguém sabe me explicar porque???
Segue abaixo classes envolvidas na questão:


Usuário:
package test.pojo;
public class Usuario {
        private int id;
        private String nome;
        private String sobreNome;
        private Filhos filhos;  // se aqui for public funciona....
estou
achando muito estranho


        public Usuario(int id, String nome, String sobreNome) {
                this.setId(id);
                this.setNome(nome);
                this.setSobreNome(sobreNome);
                this.setFilhos("Agata", "Heitor");
        }


        public String teste() {
                return "Deu certo";
        }


        public Integer getId() {
                return this.id;
        }
        public void setId(Integer id) {
                this.id = id;
        }
        public String getNome() {
                return this.nome;
        }
        public void setNome(String nome) {
                this.nome = nome;
        }
        public String getSobreNome() {
                return this.sobreNome;
        }
        public void setSobreNome(String sobreNome) {
                this.sobreNome = sobreNome;
        }


        public void setFilhos(String filho1, String filho2) {
                this.filhos = new Filhos(filho1, filho2);
        }


        public Filhos getFilhos() {
                return this.filhos;
        }



}


Filhos:
package test.pojo;
public class Filhos {
        private String filho1;
        private String filho2;

        public Filhos(String filho1, String filho2) {
                setFilho1(filho1);
                setFilho2(filho2);
        }


        public String getFilho1() {
                return this.filho1;
        }
        public void setFilho1(String filho1) {
                this.filho1 = filho1;
        }
        public String getFilho2() {
                return this.filho2;
        }
        public void setFilho2(String filho2) {
                this.filho2 = filho2;
        }
}

Flex:
<?xml version="1.0" encoding="utf-8"?>

<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml";
    xmlns="*"
    xmlns:cs="test.granite.components.*"
    layout="vertical"
     height="780" width="1024">

    <mx:Script>
        <![CDATA[
            import mx.messaging.Producer;
            import
mx.charts.effects.effectClasses.SeriesInterpolateInstance;

            import mx.controls.Alert;
            import mx.rpc.events.ResultEvent;
            import mx.collections.ArrayCollection;

            [Bindable]
            public var usuario:Object;
            [Bindable]
            public var usuarios:ArrayCollection;

            private function
onResultHelloWorld(event:ResultEvent):void{
                mx.controls.Alert.show(event.result as String);
            }
            private function onRetornaUsuario(event:ResultEvent):void{
                usuarios = ArrayCollection(event.result);
                //usuario = Object(event.result);
                //mx.controls.Alert.show("Eu, "+usuario.nome+'
'+usuario.sobreNome+", tenho 2 filhos: "+usuario.filhos.filho1+" e
"+usuario.filhos.filho2);

                }

                public function colFilho1(item:Object,
column:DataGridColumn):String {
                                return item.filhos.filho1.toString();
                }

                public function colFilho2(item:Object,
column:DataGridColumn):String {
             return item.filhos.filho2.toString();
                }

        public function mudaLinha(event:Event):void
        {
             lbl.text = event.target.selectedItem.id;
        }

        ]]>
    </mx:Script>
    <mx:RemoteObject id="srv" showBusyCursor="true"
destination="pojo" />
    <mx:Label id="lbl" text="{srv.getCounter.lastResult}" />
    <mx:Button label="Go" click="srv.getCounter()"/>

    <mx:RemoteObject id="srvHelloWorld"
        showBusyCursor="true"
        destination="HelloWorldService"
        result="onRetornaUsuario(event)" />
    <mx:Button label="Show Messages"
click="srvHelloWorld.sayHelloWorld()"/>
    <mx:Button label="Pega Usuário"
click="srvHelloWorld.retornaUsuario()"/>

    <mx:DataGrid dataProvider="{usuarios}" change="mudaLinha(event)">
        <mx:columns>
        <!--
           <mx:DataGridColumn headerText="Id" dataField="id"/>
        -->
            <mx:DataGridColumn headerText="Nome" dataField="nome" />
            <mx:DataGridColumn headerText="Sobre nome"
dataField="sobreNome"/>
            <mx:DataGridColumn headerText="Filho 1"
labelFunction="{colFilho1}"/>
            <mx:DataGridColumn headerText="Filho 2"
labelFunction="{colFilho2}"/>
        </mx:columns>
    </mx:DataGrid>
 </mx:Application>

Alguém consegue fazer tudo com o private, poderia me passa partes do
códio(como fiz acima) para que eu possa analisar e achar onde esta o
meu erro??

Desde já Obrigado
Sandro Mueller


--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a