Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

154
Visualizações
Advertencias "La condición siempre es 'verdadera'" y "El índice de matriz está fuera de los límites"

Estoy tratando de desarrollar mi primera aplicación de Android usando Android Studio, y recibo un par de advertencias de las que parece que no puedo deshacerme en un constructor de clase interno:

  1. En el bucle for advierte que la condición de terminación siempre es verdadera. Sin embargo, esta advertencia solo se muestra para la col interna for loop y no para la row externa for loop.
  2. En la asignación de grid[row][col] , advierte que el índice de matriz [row] está fuera de los límites, pero no que el índice [col] lo esté.

No entiendo por qué aparecen las advertencias, dado que el código parece ejecutarse según lo previsto, pero también por qué las advertencias solo aparecen para un bucle for y un índice, cuando seguramente cualquier problema también se aplicaría al otro. ¡Cualquier ayuda es muy apreciada!


 private class MyInnerClass { private final Character UNKNOWN = '.'; // State data private String id; private Integer grid_size; private final Character[][] grid; // Constructor public MyInnerClass(String id, Integer grid_size) { // Check the grid size is in the permitted range String[] permitted_grid_sizes = getResources() .getStringArray(R.array.permitted_grid_sizes); int min_permitted_grid_size = Integer .parseInt(permitted_grid_sizes[0]); int max_permitted_grid_size = Integer .parseInt(permitted_grid_sizes[permitted_grid_sizes.length - 1]); if ((grid_size < min_permitted_grid_size) || (grid_size > max_permitted_grid_size)) { throw new IllegalArgumentException( "specified grid size (" + grid_size + ") out of range"); } // Initialise metadata this.id = id; this.grid_size = grid_size; // Initialise a blank grid this.grid = new Character[this.grid_size][this.grid_size]; for (int row = 0; row < this.grid_size; row++) { for (int col = 0; col < this.grid_size; col++) { // Gives warning "Condition 'col < this.grid_size' is always 'true'" this.grid[row][col] = UNKNOWN; // Gives warning "Array index is out of bounds" on [row] } } } ... }
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Creo que el problema está relacionado con la tipificación de variables. El campo grid_size es de clase Integer y lo está comparando con row y col que son de tipo primitivo 'int'.

grid_size == row compara una referencia con un valor.

Lo que probablemente sucede es que su IDE está detectando este problema pero le está dando advertencias inexactas.

Si cambia grid_size a tipo primitivo int , las advertencias deberían desaparecer.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda