Se uso questa classe:Perché sto ottenendo un errore di tipo inconvertibile?
public class BooleanTest {
public static void main(String args[]) {
final Object[] objarray = new Object[2];
try {
objarray[0] = "Hello World!";
objarray[1] = false;
} catch (NullPointerException e) {
}
boolean bool = (boolean) objarray[1];
}
}
Funziona benissimo e posso assegnare tale boolean
nessun problema. Perché non posso fare la stessa cosa quando chiedo al mio utente una password?
final Object result[] = new Object[2];
try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
@Override
public void run() {
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3,0));
JLabel label = new JLabel();
label.setHorizontalAlignment(SwingConstants.LEADING);
JTextField input = new JTextField();
input.setHorizontalAlignment(SwingConstants.CENTER);
JCheckBox checkbox = new JCheckBox("Pair with this device");
checkbox.setHorizontalAlignment(SwingConstants.LEADING);
panel.add(label);
panel.add(input);
panel.add(checkbox);
if (wrong) {
label.setText("Wrong password. Please enter the password from the other device:");
} else {
label.setText("Please enter the password from the other device:");
}
int response = JOptionPane.showConfirmDialog(SendGUI.this, panel, "Enter password", JOptionPane.OK_CANCEL_OPTION);
if (response == JOptionPane.OK_OPTION) {
result[0] = input.getText();
result[1] = (boolean)checkbox.isSelected();
} else {
result[0] = null;
result[1] = false;
}
}
});
} catch (InterruptedException e) {
} catch (InvocationTargetException e) {
}
boolean pair = (boolean)result[1]; //inconvertible type, expected boolean found Object
Per quanto posso vedere che sto facendo la stessa cosa in entrambi i casi, ma il primo esempio compila bene, mentre il secondo esempio non lo fa.
potresti pubblicare l'errore che ottieni nell'ultimo codice? –
@MiguelPrz era nel mio codice, 'tipo non convertibile, oggetto trovato booleano atteso – Logan
@LoganDam: Si tratta di un errore in fase di compilazione? Stai usando lo stesso compilatore (con le stesse opzioni) in entrambi i casi? –