我正在尝试使用Java库(没有可用的源代码)来定义一些xxx.xxx.object包.Scala抱怨软件包名称中存在"对象",因此我无法从中导入,也无法使用完全限定名称引用其类.
有办法解决吗?
我确定这是一个非常愚蠢的问题,但我找不到答案,我对Java2D API没有经验.我正在尝试创建一个图像并将其写入GIF或PNG,我希望它在白色背景上使用黑色笔.如果我没有设置任何颜色,我会变成黑色的白色.如果我使用setPaint()(用于后续绘制操作),我会用整个画布重新绘制该颜色.以下示例将整个事件呈现为黑色.
示例是在Scala中,但您明白了.随便用Java回答!
val bi = new BufferedImage(200, 400, BufferedImage.TYPE_BYTE_BINARY )
val g = bi.createGraphics
g.setBackground(Color.WHITE)
g.setPaint(Color.BLACK)
g.draw(new Rectangle(10, 10, 30, 20))
Run Code Online (Sandbox Code Playgroud) 你能在Tomcat 5上热部署JAR文件吗?我们的想法是避免重新启动Tomcat,并且仍然能够从新添加的JAR中加载(通过反射)某些类.可以吗?怎么样?对生产系统不建议吗?谢谢
编辑:我的场景需要添加新的JAR文件,其名称事先不知道.服务器可以"观察"JAR目录而不是特定的JAR吗?
如果你有类似的东西:
val myStuff = Array(Person("joe",40), Person("mary", 35))
Run Code Online (Sandbox Code Playgroud)
如何使用该数据创建XML值作为节点?我知道如何在XML表达式中使用{braces}来放置值,但这是一组值.我需要明确迭代还是有更好的东西?
val myXml = <people>{ /* what here?! */ }</people>
Run Code Online (Sandbox Code Playgroud)
结果值应该是这样的:
<people><person><name>joe</name><age>40</age></person>
<person><name>mary</name><age>39</age></person></people>
Run Code Online (Sandbox Code Playgroud) 我有一个带有复选框的项目列表的Scala应用程序,以便用户选择一些,然后单击一个按钮将它们向上移动一个位置(左).我决定编写一个函数来移动某些符合给定谓词的任意类型的元素.所以,如果你有这些元素:
a b c D E f g h I
Run Code Online (Sandbox Code Playgroud)
并且谓词是"大写字符",该函数将返回:
a b D E c f g I h
Run Code Online (Sandbox Code Playgroud)
简而言之,符合谓词的任何连续元素序列都与其左侧的单个元素交换.
我想出了以下丑陋的命令式实现.我希望看到一个很好的,希望可读的功能解决方案.
def shiftUp[T](a:Array[T], shiftable: T => Boolean) = {
val s = new Array[T](a.length)
var i = 0
var j = 0
while(i < a.length)
{
if(!shiftable(a(i)) && i < a.length - 1 && shiftable(a(i+1)))
{
var ii = i + 1
while(ii < a.length && shiftable(a(ii)))
{
s(j) = a(ii)
ii = ii+1
j = j+1
}
s(j) …Run Code Online (Sandbox Code Playgroud) 我必须在这里遗漏一些愚蠢的东西.我有这个:
case class Color(val rgb:Int) {
private val c = rgb - 0xff000000
val r = (c & 0xff0000) >> 16
val g = (c & 0x00ff00) >> 8
val b = (c & 0x0000ff)
}
case object Red extends Color(0xffff0000)
case object Green extends Color(0xff00ff00)
case object Blue extends Color(0xff0000ff)
Run Code Online (Sandbox Code Playgroud)
然后我希望这打印真实:
val c = Color(0xff00ff00)
println(c == Green)
Run Code Online (Sandbox Code Playgroud)
为什么不呢?
我对Apache Ant和GCJ都很新,而且我很难通过Ant使用GCJ进行构建.
我的应用程序是在Scala中,所以我需要使用GCJ将.class文件作为源代码.使用Ant将.scala编译为.class没问题.
首先,我想出了如何手动将.class文件编译为.o(对象),这样:
gcj --classpath=(...) -c (somepath)MouseClickListener.class -o (somepath)MouseClickListener.o
Run Code Online (Sandbox Code Playgroud)
我在这里看到Ant通过javac标记支持GCJ编译.所以我认为这应该工作:
<target name="gcjCompile" depends="compile">
<mkdir dir="${object.dir}" />
<javac srcdir="${build.dir}"
destdir="${object.dir}"
compiler="gcj"
executable="C:/gcc/gcc-4.3/bin/gcj.exe"
classpathref="gcjProject.classpath">
<include name="**/*.class"/>
</javac>
</target>
Run Code Online (Sandbox Code Playgroud)
但这个javac任务什么都不做,我没有错.有线索吗?谢谢
我想创建一个Action来自动化GCJ编译.由于我无法使用Ant,我决定尝试使用SBT.文档说明了如何创建Action以及如何运行外部流程.我还没有看到如何重用java和scala编译器Actions存在的目录树遍历.在这种情况下,我的输入文件将是某个根文件夹下的所有.class文件.我还需要为GCJ指定一个特定的类路径.任何指针也将受到赞赏.
我有这个:
enum Units { Pounds, Kilos };
struct Configuration
{
const Units units;
const char *name;
inline Configuration(Units pUnits, char *pName) : units(pUnits)
{
name = strdup(pName);
}
inline ~Configuration() { free((void *)name); }
};
Run Code Online (Sandbox Code Playgroud)
我正在将其中一个传递给这样的方法:
Configuration cc(Kilos, "abc");
cdao->write(cc);
Run Code Online (Sandbox Code Playgroud)
我从这里得到了令人讨厌的崩溃,直到我尝试重新定义方法来引用:
Configuration cc(Kilos, "abc");
cdao->write(&cc);
Run Code Online (Sandbox Code Playgroud)
现在一切正常.
但是,价值结构怎么可能与内存紧密相连?
到目前为止,我已经看到了以下停止动画的技术,但我在这里寻找的是旋转视图停止在它当时的角度而不是返回到 0。
struct DemoView: View {
@State private var isRotating: Bool = false
var foreverAnimation: Animation {
Animation.linear(duration: 1.8)
.repeatForever(autoreverses: false)
}
var body: some View {
Button(action: {
self.isRotating.toggle()
}, label: {
Text("").font(.largeTitle)
.rotationEffect(Angle(degrees: isRotating ? 360 : 0))
.animation(isRotating ? foreverAnimation : .linear(duration: 0))
})
}
}
Run Code Online (Sandbox Code Playgroud)
似乎将旋转角度设为 360 或 0 不会让我将其冻结在中间角度(并最终从那里恢复)。有任何想法吗?
我只是有一个用例,我需要将列表拆分为n个子列表,以便从原始列表中按顺序获取元素并对子列表的谓词为true进行分组(当它为false时,启动新的子列表) .我没有在标准库中找到这个功能,我认为尝试以功能方式解决它是一个很好的练习(因为我远非功能大师).
以下是我提出的代码.但我怀疑它可以改进很多.你能帮我找一个更好的代码编码方法吗?
class ListWithSplitter[A](val theList:List[A])
{
private def sublistWhile(list:List[A], pred:(List[A] => Boolean)):(List[A],List[A]) =
{
def combine(okList:List[A], remaining:List[A], pred:(List[A] => Boolean)):(List[A],List[A]) =
{
if(pred(okList ::: remaining.head :: Nil))
combine(okList ::: remaining.head :: Nil, remaining.tail, pred)
else
(okList, remaining)
}
list match {
case Nil => (Nil, Nil)
case x :: Nil => (list, Nil)
case x :: xs => combine(List(x), xs, pred)
}
}
private def combinedSplit(list:List[A], pred:(List[A] => Boolean)):List[List[A]] =
{
val r = sublistWhile(list, pred)
r match { …Run Code Online (Sandbox Code Playgroud) ¿我如何使用subclipse插件执行此处描述的操作,这在命令行中非常简单?
我想我会确保我的工作副本与分支同步,然后我会去"合并......".我不知道该怎么做弹出窗口!
编辑:我已经读过某个地方,在弹出窗口中我必须将合并范围指示为一系列主干修订:从打开分支的修订版到HEAD.说得通.但我现在正在尝试使用测试项目,并且我没有在指向分支的工作副本上获得新的主干更改.我一定是在遗漏某些东西,或者它不起作用!
注意:Subclipse 1.4.8
我试图让这个工作:
def emptyCond: Parser[Cond] = ("if" ~ "(") ~> regularStr <~ ")" ^^ { case s => Cond("",Nil,Nil) }
Run Code Online (Sandbox Code Playgroud)
其中regularStr被定义为接受许多东西,包括")".当然,我希望这是一个可接受的输入:if(foo()).但对于任何if(x),它将")"作为regularStr的一部分,因此这个解析器永远不会成功.
我错过了什么?
编辑:
regularStr不是正则表达式.它定义如下:
def regularStr = rep(ident | numericLit | decimalLit | stringLit | stmtSymbol) ^^ { case s => s.mkString(" ") }
Run Code Online (Sandbox Code Playgroud)
符号是:
val stmtSymbol = "*" | "&" | "." | "::" | "(" | ")" | "*" | ">=" | "<=" | "=" |
"<" | ">" | …Run Code Online (Sandbox Code Playgroud)