Type inféré n'est pas conforme à la limite supérieure(s)

Je suis en train de faire un projet dans lequel je dois annuler les pixels d'un fichier PPM (image).

J'ai mis en place mon annuler la fonction en tant que telle:

public PPMImage negate() 
{
    RGB[] negated = new RGB[pixels.length];
    System.arraycopy(pixels, 0, negated, 0, pixels.length);
    RGB[] negatedArr = Arrays.stream(negated).parallel().map(rgb -> rgb.neg(maxColorVal)).toArray(size -> new RGB[size]);
    return new PPMImage(width, height, maxColorVal, negatedArr);
}

Avec le neg(maxColorVal) fonction étant définie comme ceci:

public void neg(int maxColorVal) 
{
    R = maxColorVal - R;
    G = maxColorVal - G;
    B = maxColorVal - B;
}

Quand je compile le code, j'obtiens l'erreur suivante:

error: incompatible types: inferred type does not conform to upper bound(s)
RGB[] negatedArr = Arrays.stream(negated).parallel().map(rgb -> rgb.neg(maxColorVal)).toArray(size -> new RGB[size]);

inferred: void
upper bound(s): Object

L'erreur de points à la carte() fonction. Ce que je fais mal?

Aussi d'ajouter, RVB est un objet qui contient une valeur de R, G valeur, et la valeur B, qui se combinent pour faire une couleur. Aussi, la gamme de pixels est un protégé de la variable de la PPMImage classe, qui m'est donnée.
Si RGB est mutable, comme votre neg méthode suggère, il n'est pas nécessaire de copier le tableau de tous les temps (et cela crée un niveau dangereusement fausse impression). À la fin de votre opération, tous les trois tableaux, pixels, negated, et negatedArr contiennent les mêmes, les valeurs modifiées. Si vous restez avec la mutable RGB valeur de mise en œuvre, un simple Arrays.stream(pixels).parallel().forEach(rgb -> rgb.neg(maxColorVal)) serait de faire tout le travail (et travaille avec l'original void neg méthode). Si vous ne voulez pas modifier le tableau d'origine, vous devez cloner la valeur des instances.
Je voulais juste dire que j'ai vraiment apprécier la mise en forme sur cette question

OriginalL'auteur Jeffrey Tai | 2014-12-02