为什么我不能在 Java 中使用“new”创建颜色关键词?
我试图用java制作一种新颜色
Color temp = new Color(foo.getBackground());
,但它一直告诉我找不到符号。
但这有效
Color temp = (foo.getbackground());
为什么?
I was trying to make a new color in java using
Color temp = new Color(foo.getBackground());
and it kept telling me cannot find symbol.
But this works
Color temp = (foo.getbackground());
Why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
这是因为
foo.getBackground()
返回一个Color
实例,并且没有采用Color
实例的Color
构造函数作为一个论点。That's because
foo.getBackground()
returns aColor
instance, and there's noColor
constructor which takes aColor
instance as an argument.检查此链接 颜色 (Java 2 Platform SE v1.1) 4.2)。
如果您希望此代码正常工作:
foo.getBackground() 必须返回一个整数。由于它返回一个对象 Color,因此类型不匹配。
您始终可以执行以下操作:
或:
Check this link Color (Java 2 Platform SE v1.4.2).
If you want this code to work:
foo.getBackground() must return an integer. Since it returns an object Color you have type mismatch.
You can always do:
or:
是的,你可以做到,问题是 foo.getBackground 可能不会返回整数或类似的东西。
完美运作
Yes, you can do it, the problem is that maybe foo.getBackground does'nt returns an integer or something similar.
works perfectly
没有只接受 Color 的 Color 构造函数。在第二个实例中,您分配一个从函数返回的变量。
There isn't a constructor for Color that takes just a Color. In the second instance you're assigning a variable that was returned from a function.
Color 类没有将 Color 的其他实例作为参数的构造函数,这就是 foo.getBackground() 返回的内容。 IIRC,Java 中的 Color 类是不可变的 - 因此提供一个构造函数来创建现有 Color 对象的副本是没有意义的。
The Color class does not have a constructor taking an other instance of Color as an argument, and that is what foo.getBackground() returns. IIRC, the Color class in Java is immutable - so there is simply no point in providing a constructor that would create a copy of an existing Color object.
显然 foo.getBackground() 返回的类型是“Color”类型。
虽然您当然可以将 Color 分配给 Color 类型的变量 temp,但至少在 java.awt.Color 中没有构造函数可以从另一个 Color 创建 Color。
Apparently the type that foo.getBackground() returns is of type "Color".
While you can of course assign a Color to the variable temp of type Color, at least in java.awt.Color there is not constructor to create a Color from another Color.