此 SWT 代码段将 a 转换BufferedImage为 SWT ImageData:
static ImageData convertToSWT(BufferedImage bufferedImage) {
if (bufferedImage.getColorModel() instanceof DirectColorModel) {
...
} else if (bufferedImage.getColorModel() instanceof IndexColorModel) {
...
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
问题是,有三分之一的子类ColorModel:ComponentColorModel。我需要使用此颜色模型转换图像。我该怎么做?
如果我有方法public void foo(Object... x),我可以用这种方式调用它:
Object[] bar = ...;
foo(bar);
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用:
Object baz = ...;
Object[] bar = ...;
foo(baz, bar);
Run Code Online (Sandbox Code Playgroud)
显然,可以通过创建大小大于1的数组bar并复制baz其中的内容来完成bar.但是有一些更可读的快捷方式吗?
我们有一个项目有几个子项目,可以在Scala 2.10和2.11下编译,一个子项目只编译在2.10(实际上是Scala-Virtualized 2.10.2)和一个子项目只编译在2.11下.有没有一种简单的方法来创建一个聚合项目,它为2.10和2.11交叉构建所有可能的子项目?或者,或者,为2.10和2.11设置不同的默认项目?
特别是,这是当前的Build.scala.如果我想补充lmsBackend到root,我得到
> show scalaVersion
[info] common/*:scalaVersion
[info] 2.10.4
[info] lms-backend/*:scalaVersion
[info] 2.10.2
[info] meta/*:scalaVersion
[info] 2.10.4
[info] community-edition/*:scalaVersion
[info] 2.10.4
[info] core/*:scalaVersion
[info] 2.10.4
[info] scalan/*:scalaVersion
[info] 2.10.4
> show crossScalaVersions
[info] common/*:crossScalaVersions
[info] List(2.10.4, 2.11.5)
[info] lms-backend/*:crossScalaVersions
[info] List(2.10.2)
[info] meta/*:crossScalaVersions
[info] List(2.10.4, 2.11.5)
[info] community-edition/*:crossScalaVersions
[info] List(2.10.4, 2.11.5)
[info] core/*:crossScalaVersions
[info] List(2.10.4, 2.11.5)
[info] scalan/*:crossScalaVersions
[info] List(2.10.4, 2.11.5)
Run Code Online (Sandbox Code Playgroud)
SBT能够运行update,compile等精美这个总的项目.但是,一旦我尝试任何交叉构建,事情就会破裂:
> +update
[info] Setting version to …Run Code Online (Sandbox Code Playgroud) 我希望有一个类,它接受一个类依赖类型的参数,就像我经常为方法做的那样.但令我惊讶的是,这不起作用:
scala> trait Compiler { trait Config }
defined trait Compiler
// works fine, as expected
scala> def f(c: Compiler)(conf: c.Config) = {}
f: (c: Compiler)(conf: c.Config)Unit
scala> class F(val c: Compiler)(val conf: c.Config)
<console>:8: error: not found: value c
class F(val c: Compiler)(val conf: c.Config)
^
Run Code Online (Sandbox Code Playgroud)
为什么?有没有解决方法?
我想编写一个函数来检查a Char代表一个西里尔字母,纯粹出于教学原因.俄语的简单近似是
isCyrillic c =
let lc = toLower c
in '?' <= lc && lc <= '?'
Run Code Online (Sandbox Code Playgroud)
但我不喜欢它,因为它不处理其他使用西里尔语的语言.我可以硬编码范围:
U+0400–U+04FF Cyrillic
U+0500–U+052F Cyrillic Supplement
U+2DE0–U+2DFF Cyrillic Extended-A
U+A640–U+A69F Cyrillic Extended-B
U+1C80–U+1C8F Cyrillic Extended-C
Run Code Online (Sandbox Code Playgroud)
但这似乎也不是很好的做法.
理想情况下,功能就是这样
isCyrillic c = unicodeScript c == Cyrillic
Run Code Online (Sandbox Code Playgroud)
但是这假定存在一个枚举Unicode脚本的类型(Unicode范围也可以).某个地方有吗?
"\u4000\f".TrimEnd(new char[0])
Run Code Online (Sandbox Code Playgroud)
等于"\u4000".
我传递一个空数组,所以根据MSDN文档,什么都不应该被删除,"\u4000\f"应该返回.这种行为有原因吗?
编辑:澄清预期的行为
编辑:显然,这改变了3.5,我正在看2.0文档页面.
当我调试Xtend代码时,我有时希望看到生成的Java代码包含所有中间变量.但是,即使我在此代码中设置了断点,调试器也会显示Xtend代码.在这种情况下是否可以切换到Java代码?
我该怎么做相同的
SELECT *, id=1 AS calc_column FROM table
Run Code Online (Sandbox Code Playgroud)
在科尔马?(显然,id=1这只是一个简单的例子).
根据C++标准,something.operator=(somethingElse)和之间会有区别something = somethingElse吗?
第一个出现在模板中T& something,我想知道用更易读的第二个版本替换它是否安全.