was bei deiner API benötigt wird oder herauskommt kann ich nicht beurteilen,
aber Java Color bietet dazu RGB-Vorstellungen und Code-Möglichkeiten, mögen diese passen oder auch nicht:
ein int besteht aus 4 Bytes, 4x 8 Bits,
denkt man nur an RGB, sind das nur die letzten 3 Bits davon, dein Color-String ist dazu ein Beispiel
ein Color-Konstruktor ist
* Creates an opaque sRGB color with the specified combined RGB value
* consisting of the red component in bits 16-23, the green component
* in bits 8-15, and the blue component in bits 0-7. The actual color
* used in rendering depends on finding the best match given the
* color space available for a particular output device. Alpha is
* defaulted to 255.
*
* @param rgb the combined RGB components
* @see java.awt.image.ColorModel#getRGBdefault
* @see #getRed
* @see #getGreen
* @see #getBlue
* @see #getRGB
*/
public Color(int rgb) {
value = 0xff000000 | rgb;
}
ergänzt automatisch 255 für keine Transparenz, volle Farbe, vorne im int,
mit getRGB() bekommt man den value dann auch vollständig zurück
int intColor = Integer.parseInt(color, 16);
Color c = new Color(intColor);
System.out.println(c.getAlpha()); // 255
System.out.println(c.getRGB()); // -4989844
int intColor2 = 0xff000000 | intColor;
System.out.println(intColor2); // -4989844
das wäre also ein Weg, falls dir ein anderer int weiterhilft, mit Color oder direkt mit der Bitmaske,
da das erste Bit für Negation steht ist so ein int immer negativ, nicht allzu schön,
als String wäre FF vorne zu ergänzen, wobei dann Integer.parseInt() streikt, noch so ein Standardproblem mit derart hohen (bzw. negativ niedrigen) Werten,
(int) Long.parseLong(color, 16);
ginge aber, erst mittelhoher long, im int-Wertebereich dann korrekt negativ