ejs rašė:
> ir BABACH:
>
> Java exception occurred: java.lang.ClassCastException: java.lang.Byte
> cannot be cast to
> com.google.zxing.qrcode.decoder.ErrorCorrectionLevel
>
> at com.google.zxing.qrcode.QRCodeWriter.encode(QRCodeWriter.java:69)
>
> Error in ==> encode_qr at 103 M_java = qr_writer.encode(message,
> BarcodeFormat.QR_CODE, props.size(2), props.size(1), qr_hints);
>
> Kaip kuriant Hashtable nurodyti ką ji saugo, arba kaip padaryti
> cast'ą priskiriant elemento reikšmę?
Aš matau:
http://grepcode.com/file/repo1.maven.org/maven2/net.sourceforge.plantuml/plantuml/7746/com/google/zxing/qrcode/QRCodeWriter.java?av=
if (hints != null) {
ErrorCorrectionLevel requestedECLevel =
(ErrorCorrectionLevel) hints.get(EncodeHintType.ERROR_CORRECTION);
if (requestedECLevel != null) {
errorCorrectionLevel = requestedECLevel;
}
}
Taigi, hashtable reikšmė turėtų būti ErrorCorrectionLevel tipas, o ne
uint8. Todėl, kaip patarė trigras, arba perrašyčiau switch'ą, arba jo
apskritai atsisakyčiau ir gal net pasinaudočiau reflection (viena, bet
bjauroka eilutė):
import java.lang.reflect.Method;
<...>
ErrorCorrectionLevel.getDeclaredMethod(
upper(props.quality)
).invoke(ErrorCorrectionLevel)