effectuer un cast d'un objet byteArray
j'ai une fonction
public static Object receviceSigAndData (Socket s) {
byte[] data = null;
try {
DataInputStream din2 = new DataInputStream(s.getInputStream());
int sig_len = 0;
sig_len = din2.readInt();
byte[] sig = new byte[sig_len];
din2.readFully(sig);
int data_len = 0;
data_len = din2.readInt();
data = new byte[data_len];
dsa.update(data);
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return (Object)data;
}
le retour de la fonction d'un objet, si l'objet est le tableau d'octets, comment puis-je convertir l'objet de byte[]
?
byte[] b = (?)receviceSigAndData (socket);
grâce
byte[]
sans doute...pourquoi ne pas simplement renvoyer une
byte[]
de la méthode? Il semble que vous vous êtes inutilement casting pour un Object
.OriginalL'auteur hkguile | 2012-05-24
Vous devez vous connecter pour publier un commentaire.
Voici 2 méthodes d'assistance pour vous pour sérialiser et désérialiser des tableaux d'octets comme des objets.
OriginalL'auteur george_h
En regardant votre code:
Object
: puisque c'est une sortie, il est implicitement fait (unbyte[]
est statiquement également uneObject
)Object
à unbyte[]
en utilisant une baissés:byte[] a = (byte[])obj
Object
est complètement inutile, les signatures sont destinés à être utiles et informatives. Au retour d'uneObject
est la moins informative chose que vous pouvez faire. Si votre méthode est censée retourner unbyte[]
alors sa valeur de retour doit être debyte[]
typeOriginalL'auteur Jack