Autor Tema: Java reference to format is ambiguous both method format String,Object Netbeans  (Leído 2284 veces)

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Intentando mover el mensaje de un forero a esta sección, parece que se ha perdido por el camino. Pero he podido recuperar el texto de su consulta:


TEXTO DE LA CONSULTA

Qué tal, estoy empezando a ver el tema de Java con Netbeans y estamos con JOption y los recuadros de dialogo este es mi programa que hice casi todo compila bien sale el recuadro excepto el ultimo que me tiene que mostrar los datos que se ingresan y de echo me sale el siguiente mensaje

reference to format is ambiguous
both method format(String,Object...) in String and method format(Locale,String,Object...) in String match

Código: [Seleccionar]
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package estructuradatos;

import javax.swing.JOptionPane;

/**
 *
 * @author wordl
 */
public class SistemaINE {
    public static void main (String[] args, String String) {
    int edad, Nocalle, cp;
    String nom, apellidopaterno, apellidomaterno, fechanacimiento, nomcalle, municipio, estado;
   
   String n = JOptionPane.showInputDialog ("Ingrese su edad");
   edad = Integer.parseInt(n);
   
    if (edad >17) {
       
    String mensaje = String.format("Si puede votar", edad);
    JOptionPane.showMessageDialog(null,mensaje);
   
     String a = JOptionPane.showInputDialog ("Ingrese Nombre del ciudadano");
    nom=(a);
   
    String b = JOptionPane.showInputDialog ("Ingrese Apellido Paterno");
    apellidopaterno= (b);
   
    String c = JOptionPane.showInputDialog ("Ingrese Apellido Materno");
    apellidomaterno= (c);
   
    String d = JOptionPane.showInputDialog ("Ingrese su edad");
    edad= Integer.parseInt(d);
   
    String e = JOptionPane.showInputDialog ("Ingrese su fecha de nacimiento");
    fechanacimiento= (e);
   
    String f = JOptionPane.showInputDialog ("Ingrese el nombre de su calle");
    nomcalle= (f);
   
    String g = JOptionPane.showInputDialog ("Ingrese el numero de su vivienda");
    Nocalle= Integer.parseInt(g);
   
    String h = JOptionPane.showInputDialog ("Ingrese su codigo postal");
    cp= Integer.parseInt(h);
   
    String i = JOptionPane.showInputDialog ("Ingrese el municipio");
    municipio= (i);
   
    String j = JOptionPane.showInputDialog ("Ingrese estado al que pertenece");
    estado= (j);
   
    String mensaje3 = String.format(null,"Nombre del ciudadano:   %s\n Apellido Paterno:   %s\n Apellido Materno:   %s\n edad:   %s\n Fecha de nacimiento:   %s\n Nombre de la calle:   %s\n Numero de la calle:   %s\n Codigo Postal:   %s\n Municipio:   %s\n Estado:   %s\n",nom,apellidopaterno,apellidomaterno,edad,fechanacimiento,nomcalle,Nocalle,cp,municipio,estado);
    JOptionPane.showMessageDialog(null,mensaje3);
   
    }
    else {
   
    String mensaje2 = String.format("No puede votar");
    JOptionPane.showMessageDialog(null,mensaje2);
   
   
   
           
    }
    }
   
}



Gracias
« Última modificación: 06 de Junio 2020, 13:58 por Ogramar »
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Re:Dudas JOption
« Respuesta #1 en: 09 de Mayo 2019, 21:31 »
El problema seguramente viene por el null que pones al principio.

Citar
String mensaje3 = String.format(null,"Nombre del ciudadano:   %s\n Apellido Paterno:   %s\n Apellido Materno:   %s\n edad:   %s\n Fecha de nacimiento:   %s\n Nombre de la calle:   %s\n Numero de la calle:   %s\n Codigo Postal:   %s\n Municipio:   %s\n Estado:   %s\n",nom,apellidopaterno,apellidomaterno,edad,fechanacimiento,nomcalle,Nocalle,cp,municipio,estado);
    JOptionPane.showMessageDialog(null,mensaje3);

El compilador, al encontrarse con ese parámetro null, piensa que estás llamando al método que recibe como primer parámetro un objeto Locale, pero como dicho parámetro está "nulleado".., le resulta extraño.

Simplemente quita ese null y ya está.

Por cierto, al final de todo no es necesario usar String.format()

Citar
String mensaje2 = String.format("No puede votar");

Puesto que es una simple cadena sin variables que formatear ni nada, puedes hacerlo simplemente así:
Citar
String mensaje2 = "No puede votar";
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".