首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >接口ColorSpace无法定义初始值设定项

接口ColorSpace无法定义初始值设定项
EN

Stack Overflow用户
提问于 2012-02-16 17:35:53
回答 3查看 1.3K关注 0票数 0
代码语言:javascript
复制
public abstract interface Color
{


  public static final float[] xyz2sRGB;

  static
  {
    float[] arrayOfFloat = new float[9];
    arrayOfFloat[0] = 3.241F;
    arrayOfFloat[1] = -0.9692F;
    arrayOfFloat[2] = 0.0556F;
    arrayOfFloat[3] = -1.5374F;
    arrayOfFloat[4] = 1.876F;
    arrayOfFloat[5] = -0.204F;
    arrayOfFloat[6] = -0.4986F;
    arrayOfFloat[7] = 0.0416F;
    arrayOfFloat[8] = 1.057F;
    xyz2sRGB = arrayOfFloat;
  } 

编译器不喜欢上面的代码,返回错误:

代码语言:javascript
复制
The interface ColorSpace cannot define an initializer

我哪里错了?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-16 17:38:52

接口没有初始值设定项。静态或非静态。但是,您可以使用静态初始值设定项创建抽象类。但请记住,抽象类不是接口,所以您只能扩展一个这样的类。

代码语言:javascript
复制
public abstract class Color{
    public static final float[] xyz2sRGB;
      static
      {
        xyz2sRGB= new float[9];
        xyz2sRGB[0] = 3.241F;
        xyz2sRGB[1] = -0.9692F;
        xyz2sRGB[2] = 0.0556F;
        xyz2sRGB[3] = -1.5374F;
        xyz2sRGB[4] = 1.876F;
        xyz2sRGB[5] = -0.204F;
        xyz2sRGB[6] = -0.4986F;
        xyz2sRGB[7] = 0.0416F;
        xyz2sRGB[8] = 1.057F;
      } 
}
票数 2
EN

Stack Overflow用户

发布于 2012-02-16 17:40:41

代码语言:javascript
复制
abstract interface

听起来很不对劲。

定义abstract classinterface。接口将不支持static初始值设定项。

在您的示例中,只需用class替换接口即可。

票数 0
EN

Stack Overflow用户

发布于 2012-02-16 22:04:20

您可以简单地使用数组的声明来初始化数组:

代码语言:javascript
复制
public interface Color {

    public static final float[] xyz2sRGB = {
        3.241F, -0.9692F, 0.0556F,
        -1.5374F, 1.876F, -0.204F,
        -0.4986F, 0.0416F, 1.057F
    };

}

然后你就不需要初始化器了,问题就解决了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9308723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档