Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Kabuto en 09 de Mayo 2019, 21:23

Título: Java reference to format is ambiguous both method format String,Object Netbeans
Publicado por: Kabuto en 09 de Mayo 2019, 21:23
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
Título: Re:Dudas JOption
Publicado por: Kabuto 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";