Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [java] incopatibilità byte[]

    Salve a tutti.
    Ho tre classi, una per la codifica delle stringhe (PasswordUtil) che restituisce un byte[]
    codice:
     public static byte[] encrypt(String source) throws Exception {...
    una che si occupa di interfacciarsi con un database (dao_admin) che prende byte[] come paramentro
    codice:
      public static void temp(connection_props DB_properties, byte[] password) throws Exception {...
    ed una che si interfaccia con entrambi e funge da manager
    codice:
    if(equals(user.getPassword(),PasswordUtil.encrypt(password))) destination = "/jsp/admin_home.jsp";
    Non riesco però a compilare la manager.
    Mi da un errore di questo genere:
    codice:
    equals(java.lang.Object) in java.lang.Object cannot be applied to (byte[],byte[])
    				if(equals(user.getPassword(),PasswordUtil.encrypt(password))) destination = "/admin.jsp";
    Dove sto sbagliando?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    oggetto1.equals(oggetto2) è la sintassi per equals. Non ho mai confrontato array in questo modo però.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    quì se non sbaglio dice che prende due parametri.
    codice:
    http://java.sun.com/j2se/1.5.0/docs/api/java/util/Arrays.html#equals(byte[],%20byte[])

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ah, 1.5 non sapevo... uso ancora 1.4.x... infatti avevo scritto il mio metodo

    codice:
    private boolean equals(byte[] b1, byte[] b2) {
        boolean flag = false;
        if (b1.length==b2.length) {
          flag = true;
          for (int i=0; i < b1.length && flag; i++) {
            flag = (b1[i]==b2[i]);
          }
        }
        return flag;
      }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    grazie. Ma quel metodo esiste anche nella 1.4.2
    codice:
    http://java.sun.com/j2se/1.4.2/docs/api/index.html
    ancora non capisco l'errore.

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    detto fatto, la JVM sta usando equals di lang.Object

    usa questo invece:

    codice:
    java.util.Arrays.equals(ar1, ar2);
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    si giusto.
    Però non dovrebbe riconoscerlo in automatico. Per di più ho importato la classe.

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    temo di no. E' una raccomandazione che fanno da mamma sun che dovunque ci sia possibilità di omonimia, bisogna specificare esplicitamente il metodo, con relativo intero percorso: lang è importato automaticamente in tutti i tuoi programmi...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.