Problemas ao instanciar objeto num vetor pelo return de um método – JAVA

Eu tenho o seguinte método da classe Loja que tem como função preencher as variáveis de um objeto do tipo Venda (além de modificar um produto de acordo com a quantidade de produtos vendidos passado no parâmetro).

public Venda realizarVenda(int codigoCliente, int codigoProduto, int quantidade){         Venda v = new Venda();        for(int i = 0 ; this.clientes[i].getCodigo() != 0 ; i++){            if(this.clientes[i].getCodigo() == codigoCliente){                v.setCliente(this.clientes[i].getNome());                v.setCodigoVenda(codigoCliente+codigoProduto);                v.setProduto(this.produtos[codigoProduto-1].getNome());                v.setQuantidade(quantidade);                this.produtos[codigoProduto-1].setQuantidade                (this.produtos[codigoProduto-1].getQuantidade()- quantidade);            }        }        return v;    } 

Acontece que, ao tentar chamar a função com a linha:

loja.getVendas()[0].setVendas(loja.realizarVenda(1112, 7, 8)); 

Dá o erro:

cannot find symbol symbol:method setVendas(Venda) location: class Venda 

variáveis da classe loja e construtor:

public class Loja {     private Produto[] produtos;     private Cliente[] clientes;     private Venda[] vendas;      public Loja (int quantidadeProdutos, int quantidadeClientes, int quantidadeVendas) {     this.produtos = new Produto[quantidadeProdutos];         for (int i = 0; i < quantidadeProdutos; i++) {         this.produtos[i] = new Produto();          }     this.clientes = new Cliente[quantidadeClientes];         for (int j = 0; j < quantidadeClientes; j++) {         this.clientes[j] = new Cliente();          }     this.vendas = new Venda[quantidadeVendas];         for (int k = 0; k < quantidadeVendas; k++) {         this.vendas[k] = new Venda();          }     } 

Como instanciar corretamente o objeto que está sendo passado como parâmetro no método em um vetor de objetos? Os getters e setters de um vetor de objetos devem ser configurados diferentemente da forma padrão?

exemplo de como estão os getters e setters:

public Venda[] getVendas() {     return vendas; }  public void setVendas(Venda[] vendas) {     this.vendas = vendas; } 

Qual a diferença entre o método construtor e a utilização do setters em Orientação a Objetos em JavaScript

A pergunta pode parecer meio tosca, mas fiquei com dúvidas e gostaria de compreender mais a fundo.

O construtor ele alimenta os objetos criados da classe, correto?

As dúvidas são:

1- Então qual seria a utilidade dele se tem os setters que alimenta também o objeto?

2- Posso trabalhar com uma classe em JS apenas com o construtor sem os getters/setters ou trabalhar sem o construtor ficando com os getters/setters?

3- De algum modo da dúvida 2 isso irá atrapalhar em algo quando for realizar herança?

¿Como se hace para relacionar con el método join relacionar mas de dos tablas en un controlador?

Tengo en mi proyecto que se llama proyectolaravel una vez que he creado la migración de la tabla productos con categoría, creó un controlador con el comando de Laravel php artisan make:controller ProductoController , pero en el método index del controlador de Productos (ProductosController.php) que esta en la ruta (/app/Http/Controllers/ProductoController.php), estoy usando la función join en el index para relacionar dos tablas, que adjunto mi controlador (ProductoController.php)

<?php  namespace App\Http\Controllers;  use Illuminate\Http\Request; use App\Http\Resources\ProductosResource; use App\Http\Controllers\Controller; use App\Productos;  class ProductoController extends Controller {     public function index(Request $  request)     {         //         if(!$  request->ajax()) return redirect('/');         $  buscar= $  request->buscar;         $  criterio= $  request->criterio;          if($  buscar==''){              $  productos= Productos::join('categorias','productos.idcategoria','=','categorias.id')             ->select('productos.id','productos.idcategoria','productos.codigo','productos.nombre','categorias.nombre as nombre_categorias','productos.precio_venta','productos.stock','productos.condicion')             ->orderBy('productos.id', 'desc')->paginate(3);           } else{              $  productos= Productos::join('categorias','productos.idcategoria','=','categorias.id')             ->select('productos.id','productos.idcategoria','productos.codigo','productos.nombre','categorias.nombre as nombre_categorias','productos.precio_venta','productos.stock','productos.condicion')             ->where('productos'.$  criterio. 'like', '%'. $  buscar . '%')             ->orderBy('productos.id', 'desc')->paginate(3);         }                   //return $  categorias;         return[              'pagination' => [             'total'           => $  productos->total(),             'current_page'    => $  productos->currentPage(),             'per_page'        => $  productos->perPage(),             'last_page'       => $  productos->lastPage(),             'from'            => $  productos->firstItem(),             'to'              => $  productos->lastitem(),              ],              'productos' => productos         ];               }            /**      * Store a newly created resource in storage.      *      * @param  \Illuminate\Http\Request  $  request      * @return \Illuminate\Http\Response      */     public function store(Request $  request)     {         //         if(!$  request->ajax()) return redirect('/');         $  producto= new Productos();         $  producto->idcategoria = $  request->idcategoria;         $  producto->codigo = $  request->codigo;         $  producto->nombre = $  request->nombre;         $  producto->precio_venta = $  request->precio_venta;         $  producto->stock = $  request->stock;         $  producto->condicion= '1';         $  producto->save();     }       /**      * Update the specified resource in storage.      *      * @param  \Illuminate\Http\Request  $  request      * @param  int  $  id      * @return \Illuminate\Http\Response      */     public function update(Request $  request)     {         //         if(!$  request->ajax()) return redirect('/');         $  producto= Productos::findOrFail($  request->id);         $  producto->idcategoria = $  request->idcategoria;         $  producto->codigo = $  request->codigo;         $  producto->nombre = $  request->nombre;         $  producto->precio_venta = $  request->precio_venta;         $  producto->stock = $  request->stock;         $  producto->condicion= '1';         $  producto->save();     }      public function desactivar(Request $  request)     {         //         if(!$  request->ajax()) return redirect('/');         $  producto= Productos::findOrFail($  request->id);         $  producto->condicion= '0';         $  producto->save();     }      public function activar(Request $  request)     {         //         if(!$  request->ajax()) return redirect('/');         $  producto= Productos::findOrFail($  request->id);         $  producto->condicion= '1';         $  producto->save();     } }

Mi pregunta es la siguiente ¿como hacer para relacionar mas de 2 tablas con la función join como lo pueden observar en mi controlador ProductoController.php (en el método index); si hubiera que relacionar mas de dos tablas con la función join?

Metodo SQL NATIVO JPA

tengo una query en nativa, y me devuelve una lista, la cosa es como puedo hacer para lo que me devuelve parsearlo en un DTO. Tengo esto alguna ayuda…

@Query(value =  			+ "SELECT BLABLA, BLABLA2, BLABLA3, BLABLA4  FROM BLABLATABLE ", nativeQuery = true) 	public List<BlablaDTO> getBlaBlaWithDades();

C++ – Aplicar a herança/polimorfismo na método main

Estou tendo problemas com a utilização de herança/polimorfismo quando utilizo no método main. Como deve ser feita a alocação de memória?


#include <stdio.h> #include <string.h> #include <stdlib.h>  #define MAX 100  class Disciplina { protected:     int cod;     char nome[MAX];     int sem, ano, cred; public:     virtual void ler();     virtual float media();     int getCod()             { return cod; }     char *getNome(char *buf) { return strcpy(buf, nome); } //strcpy retorna a variável alterada 'buff'     int getSem()             { return sem; }     int getAno()             { return ano; }     int getCred()            { return cred; } };  class Disc1 : Disciplina { private:     float n1, n2; protected:     float getN1() { return n1; }     float getN2() { return n2; } public:     virtual void ler();     float media() { return (n1 + n2) /2; }; };  void Disc1::ler() {     printf ("Digite a Nota 1: ");     scanf ("%f", &n1);     printf ("Digite a Nota 2: ");     scanf ("%f", &n2);     printf ("Nome da Disciplina: ");     fflush(stdin);     scanf ("%[^\n]", nome);     printf ("Semestre: ");     scanf ("%i", &sem);     printf ("Ano: ");     scanf ("%i", &ano);     printf ("Credito: ");     scanf ("%i", &cred); }  class Disc2 : Disc1 { private:     float n3; public:     void ler();     float media() { return (n3 + ((getN1() + getN1())/2)) / 2; } };  void Disc2::ler() {     Disc1 ler();      if (media() >= 5 && media() < 7 ) {         printf ("Informe a Nota 3: ");         scanf ("%f", &n3);     } }  void criarTipo(Disciplina *x, int tipo) {      switch (tipo) {         case 1: x = new Disc1;         break;         case 2: x = new Disc2;         break;     } }  int main () {     Disciplina *x;      criarTipo(x, 2);      return 0; } 

como hacer un UPDATE utilizando método post y variable de SESSION

Lo que quiero hacer,es actualizar un formulario,estos datos del formulario yo los listo capturando la SESSION empl_doc y en enviandola a una funcion llamada listarDatosPersonales,hasta ahi todo bien,despues de ver los datos intento actualizarlos con un boton modificar a traves de una funcion llamada ModificarDatosPersonales,ahi es donde no sirve ,no muestra errores pero tampoco actualiza la BD ,supongo que el error esta cuando capturo la session pero no se como igualarla con el metodo post.[![ [introducir la descripción de la imagen aquí][1]][1] introducir la descripción de la imagen aquí

Como llamar el metodo async task en ajax en jquery utilizando Web forms?

Tengo una aplicacion en web forms y estoy utilizando metodos async en el codebehind que luego llamo con ajax en jquery. Realize una prueba con mvc y me funciona pero, al cambiar a un proyecto web forms no me genera el tokens de acceso al cognitive services de azure y me devuelve la pagina aspx donde esta el metodo que llamo. El codigo del codebehind.

        public async Task<string> Token()     {         return await GetTokenAsync(Region, SubscriptionKey);     }     private async Task<string> GetTokenAsync(string region, string subscriptionKey)     {         if (string.IsNullOrEmpty(region) || string.IsNullOrEmpty(subscriptionKey))         {             throw new ArgumentNullException("Region or subscriptionKey is null!");         }          using (var client = new HttpClient())         {             client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);             using (var response = await client.PostAsync($  "https://{region}.api.cognitive.microsoft.com/sts/v1.0/issueToken", null))             {                 return await response.Content.ReadAsStringAsync();             }         }     } 

Con este codigo luego lo llamo en la pagina aspx con ajax y jquery, pero no funciona.Este metodo lo llamo desde un button con onclick. En Url: llamo a la funcion Token que es async y esta en la misma pagina(Codebehind).

<script type='text/javascript'>     function getImmersiveReaderTokenAsync() {         return new Promise((resolve, reject) => {             $  .ajax({                 url: 'AAreader.aspx/Token',                 type: 'GET',                 success: token => {                     resolve(token);                 },                 error: err => {                     console.log('Error in getting token!', err);                     reject(err);                 }             });         });     }      async function handleLaunchImmersiveReader() {         const data = {             title: document.getElementById('title').innerText,             chunks: [{                 content: document.getElementById('content').innerText,                 lang: 'en'             }]         };         var tiltes = document.getElementById('title').innerText;         console.log(tiltes);         const options = {             uiZIndex: 1000000         }          const token = await getImmersiveReaderTokenAsync();         console.log(token);         ImmersiveReader.launchAsync(token, data, options)             .then(() => {                 console.log('success');             }, (error) => {                 console.log('error! ' + error);             });     } </script> 

El error es que me devuelve no un token sino mas bien la pagina aspx en html y en consola el error es: TypeError: e.xhr is undefined

Cambio de método con iron-ajax. Envía OPTIONS en vez de POST

Estoy haciendo una práctica y no consigo avanzar. Estoy enviando una petición POST al servidor y constantemente veo que en vez de mandarla como POST la manda como OPTIONS, desencadenando un error. Además siempre me cambia la URL añadiendo una ? al final de la misma.

Mi código completo es:

<link rel="import" href="../../bower_components/polymer/polymer-element.html"> <link rel="import" href="../../bower_components/iron-ajax/iron-ajax.html">    <dom-module id="user-login">   <template>     <style>       :host {         display: block;       }       .boxed-aqua {         background-color: darkblue;         text-align: center;         color: ghostwhite;       } /*         .form {         margin: 0 auto;         width: 210px;   }   .form label{        display: inline-block;      text-align: right;      float: left;    }   .form input{        display: inline-block;      text-align: left;       float: right;   } */       </style>        <body>       <div class="boxed-aqua">         <h1>The future bank</h1>         <h2>Cambiando lo cotidiano</h2>       </div>         <form class="form">           <div>           <label>Usuario:  </label>           <input placeholder="username" type="text" value="{{username::input}}" required>            </div>           <br>           <div>             <label>Password:</label>             <input placeholder="password" type="password" value="{{password::input}}" required>           </div>           <br>             <div>             <button on-click="login">Acceder</button>             <span hidden$  ="{{!isLogged}}">Bienvenid@ de nuevo</span>             <input type="button" value="Registrarse">           </div>           </form>       </body>        <iron-ajax           id="doLogin"           url="http://localhost:8080/v1/login"           handle-as="json"           content-type="application/json"           method="POST"           on-response="manageAJAXResponse"           on-error="showError"         >       </iron-ajax>      </template>    <script>     /**      * @customElement      * @polymer      */     class UserLogin extends Polymer.Element {       static get is() { return 'user-login'; }       static get properties() {         return {           username:{            type: String,            value:"felipe2"          },          password: {            type: String,            value: "123456"          },          jwt:{            type: String          },          isLogged: {            type: Boolean,            value: false          }         };       }        login(){        console.log("--login--");        console.log(this.username);         var loginData = {          "username":this.username,          "password":this.password        }         this.$  .doLogin.body = JSON.stringify(loginData);        this.$  .doLogin.generateRequest();         console.log("Petición de login enviada");      }       manageAJAXResponse(data){        console.log("--manageAJAXResponse--");        console.log(data.detail.response);        this.isLogged = true;        this.dispatchEvent(        new CustomEvent(          "jwt",          {            "detail":{"jwt": data.detail.response.jwt}          }        )      )       }       showError(error){        console.log("--showError--");        console.log(error);        console.log(error.detail);        this.isLogged = false;       }       }      window.customElements.define(UserLogin.is, UserLogin);   </script> </dom-module> 

Estoy usando Polymer 2 y para lanzar la petición iron-ajax 2.1.3.

Una evidencia de lo que llega al servidor:

172.20.0.1 – – [29/Jun/2019:15:24:21 +0000] “OPTIONS /v1/login HTTP/1.1” 200 4 “http://127.0.0.1:8081/components/the-future-bank/” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36”

Evidencia ejecución navegador

Os agradecería cualquier pista.

Como manter a requisição aberta para usar o método write() depois de muito tempo

Eu preciso manter a conexão aberta para depois de 180 segundos escrever os novos dados. O problema é que dessa forma que eu fiz, a stream simplesmente para depois da primeira musica. Como posso fazer para continuar aberta a conexão e tocar a segunda musica também ?

app.get('/current', async (req, res) => {     let stream = fs.createReadStream('sounds/musica 1.mp3')      stream.on('data', chunk => {         res.write(chunk)     })      setInterval(() => {         let temp = fs.createReadStream('sounds/musica 2.mp3')          temp.on('data', chunk => {             res.write(chunk)         })     }, 180*1000) })  server.listen(3005, async function () {     console.log('Server is running on port 3005...') });