前一段时间我读了(在我丢失它之前)一本名为GUI Bloopers的好书,其中充满了不良GUI设计的例子,但也充满了有用的花絮,比如不要把事情称为 Dialog 一分钟和 Popup 下一分钟.
您将为设计/记录GUI提供哪些重要提示?听说您设计的小部件将可读信息塞入尽可能小的屏幕空间中会特别有用.
我将用我自己的一个来推动它:避免树木(例如Swing JTree),除非你真的无法避免它,或者有一个无限的层次结构.我发现用户没有发现它们直观,而且很难导航和过滤.
PS.我认为这个问题不同于这一个为我所要求的多面手提示
我已经看到(并听到)关于向Scala 添加虚拟类的相当多的噪音(根据Martin Odersky的说法,它已经有虚拟类型).
什么是虚拟类型是什么,外行人的观点(可能是一个例子)是什么?Scala有什么可能的虚拟类?
([我没有使用过C或C++的经验,所以我希望任何答案都不要参考这些语言].)
我在java中创建临时文件,但我无法删除它.这是我写的代码:
temp = File.createTempFile("temp", ".txt");
temp.deleteOnExit();
fileoutput = new FileWriter(temp);
buffout = new BufferedWriter(fileoutput);
Run Code Online (Sandbox Code Playgroud) 我们最近一直在将许多应用程序从RedHat linux JDK1.6.0_03下运行到Solaris 10u8 JDK1.6.0_16(更高规格的机器),我们注意到了一个相当紧迫的问题:在某些负载下我们的JVM获得他们自己变成了"死亡螺旋"并最终失去了记忆.注意事项:
SIGSEGV错误而崩溃最重要的一点是:行为表现在那些突然获得大量数据的应用程序中(通常通过TCP).好像VM决定继续添加更多数据(可能会将其推进到TG),而不是在"新闻空间"上运行GC,直到它意识到它必须执行完整的GC,然后尽管VM中的所有内容都是垃圾,它以某种方式决定不收集它!
这听起来很疯狂,但我只是看不出它是什么.你怎么能解释一个应用程序哪一分钟落在最大堆1Gb和下一个工作正常(当应用程序完全相同的事情时永远不会大约256M )
所以我的问题是:
自从Smalltalk开始以来,我已经成为一名Java程序员超过10年了.我认为下一个大型语言很可能是在无处不在的Java虚拟机上运行的.我想利用Scala(以及其他语言)中的一些特性 - case类层次结构,闭包,类型推断的语句,因为它将允许我编写更简洁明了(我希望)的代码.更接近Smalltalk!
所有在Java中都是第二天的东西:
antjars中XML,Spring等等)我担心玩一些宠物项目和实际上在工作场所愤怒地使用它之间的区别有点太多了.
(显然人们正在使用 Scala - 但是有人建立实际的,因为想要一个更好的词,企业应用程序?)
在Scala我可以这样做:
trait SomeTrait {
protected def foo: String
}
class Wibble extends SomeTrait {
protected var foo = "Hello"
}
Run Code Online (Sandbox Code Playgroud)
但我不能做同样的事情,我提供了默认定义 foo
trait SomeTrait {
protected def foo: String = "World"
}
class Wibble extends SomeTrait {
protected var foo = "Hello" //complains about lack of override modifier
override protected var foo = "Hello" //complains "method foo_ overrides nothing"
}
Run Code Online (Sandbox Code Playgroud)
为什么我不能这样做?
编辑:在scala-users邮件列表上进行对话后,我在trac中提出了这个问题
我正在学习scala,但无法知道如何做到这一点:
我在scala对象和google appengine实体之间进行映射,所以如果我有这样的类:
class Student {
var id:Long
var name:String
}
Run Code Online (Sandbox Code Playgroud)
我需要创建该类的一个实例,在java中我会得到它的名字然后然后做,field.set(object, value)但我找不到如何在scala中这样做.
我不能使用java反射,因为Student的字段被视为私有,而field.set因此而抛出错误.
谢谢
如果我有:
val f : A => B => C
Run Code Online (Sandbox Code Playgroud)
这是以下的简写:
val f : Function1[A, Function1[B, C]]
Run Code Online (Sandbox Code Playgroud)
如何获得g带签名的功能:
val g : (A, B) => C = error("todo")
Run Code Online (Sandbox Code Playgroud)
(即)
val g : Function2[A, B, C] //or possibly
val g : Function1[(A, B), C]
Run Code Online (Sandbox Code Playgroud)
在f?