Java 为什么可以';我不能创造一种新的颜色吗

Java 为什么可以';我不能创造一种新的颜色吗,java,android-studio,Java,Android Studio,当我尝试使用RGB值创建颜色时,我会收到一条消息说“color()in color不能应用于:”,然后它会说“Expected parameter:”和“Actual Arguments:” 当我尝试运行该程序时,它会显示: error: constructor Color in class Color cannot be applied to given types; required: no arguments found: int,int,int reason: actual and fo

当我尝试使用RGB值创建颜色时,我会收到一条消息说“color()in color不能应用于:”,然后它会说“Expected parameter:”和“Actual Arguments:”

当我尝试运行该程序时,它会显示:

error: constructor Color in class Color cannot be applied to given types;
required: no arguments
found: int,int,int
reason: actual and formal argument lists differ in length
我要说的是

//Color black
Color myColor = Color.valueOf(0.0f,0.0f,0.0f);
根据@esqew的说法。请记住,值的范围是[0,1],而不是[0255]

或者,正如@DaveNewton所建议的,我们可以使用以下任一方法:

//Color white
Color myColor = Color.valueOf(Color.rgb(1.0f,1.0f,1.0f));//floats, [0,1]
Color myColor = Color.valueOf(Color.rgb(255,255,255));//ints, [0,255]

这些方法都有文档记录,而且。

因为这不是
Color
类在其构造函数中所期望的,根据文档:这与错误消息所说的几乎相同。简短回答-尝试一个静态
valueOf
方法,而不是构造函数。是否确实需要
Color
实例?通常不会创建
Color
类的实例。大多数颜色都是简单的
int
值。
Color
类主要是一组静态方法来处理这些内容。如果要从RGB值创建
int
颜色值,请使用方法。或
RGB
使用
int
s。
//Color white
Color myColor = Color.valueOf(Color.rgb(1.0f,1.0f,1.0f));//floats, [0,1]
Color myColor = Color.valueOf(Color.rgb(255,255,255));//ints, [0,255]