あなたの属性オブジェクトの実際のタイプはString
と思われます。
文字列をバイト配列に変換し、バックアップする適切な方法:
import javax.naming.NamingException;
import javax.naming.directory.Attributes;
import javax.naming.directory.BasicAttributes;
import java.io.UnsupportedEncodingException;
import java.util.Optional;
public class Main {
public static void main(String[] args) {
Attributes as = new BasicAttributes("a1", "val1");
try {
String attribute = (String) Optional.ofNullable(as.get("a1"))
.orElseThrow(() -> new IllegalArgumentException("No such attribute"))
.get();
byte[] objGUIDByteArr = attribute.getBytes("UTF-8");
System.out.println(new String(objGUIDByteArr));
} catch (UnsupportedEncodingException | NamingException e) {
e.printStackTrace();
}
}
}
出力:
val1
文書によると、あなたがnull
を得ることができますので、私はあなたがNPEを避けるために、ヌル・ハンドリングを追加する必要があります(そのため、追加のチェックのためにOptional
を追加しました。これはjava 8から利用可能です):
/**
* Retrieves the attribute with the given attribute id from the
* attribute set.
*
* @param attrID The non-null id of the attribute to retrieve.
* If this attribute set ignores the character
* case of its attribute ids, the case of attrID
* is ignored.
* @return The attribute identified by attrID; null if not found.
* @see #put
* @see #remove
*/
Attribute get(String attrID);
「attrs」とは何ですか? –
'javax.naming.directory.Attributes' – Shiva