小编Ken*_*len的帖子

在JSpinner中禁用数字分组

我需要一个小部件来选择TCP/UDP端口,所以我写了以下内容:

public static JSpinner makePortSpinner()
{
    final JSpinner spinner = new JSpinner(
            new SpinnerNumberModel( DefaultPort, 1024, 65535, 1 ) );
    spinner.setFont( Monospaced );
    return spinner;
}
Run Code Online (Sandbox Code Playgroud)

...... Monospaced并且DefaultPort是静态常量.

我想从结果显示中删除数字分组字符.例如,默认值55024显示为"5524",我希望它为"55024".我知道NumberFormat,正如我可能使用的那样JFormattedTextField,有一个setGroupingUsed(boolean)方法可以达到这个目的.有这样的东西JSpinner吗?我应该继承SpinnerNumberModel吗?

java user-interface swing jspinner number-formatting

9
推荐指数
1
解决办法
3288
查看次数

Scala:指定覆盖受保护方法的公共方法

我正在编写一个trait应该指定clone返回a 的方法CloneResult,如下所示:

trait TraitWithClone extends Cloneable {
  def clone: CloneResult
}
Run Code Online (Sandbox Code Playgroud)

这里的目的是收紧对这个界面有用java.lang.Objectclone()东西的返回类型.但是,当我尝试编译它时,我得到:

错误:在特征View2中重写方法克隆类型为()CloneResult; 类型为()java.lang.Object的类Object中的方法clone具有较弱的访问权限; 它应该是公开的; (注意在型性状视图2()CloneResult是抽象的,并且由具体的方法克隆在类型的类对象因此重写该方法克隆()java.lang.Object中)

public当Scala没有关键字时,我如何要求实现?我知道我能做到:

trait TraitWithClone extends Cloneable {
  override def clone = cloneImpl
  protected def cloneImpl: CloneResult
}
Run Code Online (Sandbox Code Playgroud)

......但这似乎是一个黑客.有什么建议?

methods overriding clone scala protected

7
推荐指数
1
解决办法
1888
查看次数

Scala PartialFunctions来自具体的

有没有什么快速的方法可以用作具体的功能(类型,比如说(A) => B)PartialFunction[A, B]?我所知道的最简洁的语法是:

(a: A) => a match { case obj => func(obj) }
Run Code Online (Sandbox Code Playgroud)

在任何地方都有隐式转换,例如:

implicit def funcAsPartial[A, B](func: A => B) = new PartialFunction[A, B] {

  def isDefinedAt(a: A) = true
  def apply(a: A) = func(a)

}
Run Code Online (Sandbox Code Playgroud)

我想我刚刚写了我要找的东西,但这已经存在于Scala库中吗?

scala partialfunction

5
推荐指数
1
解决办法
245
查看次数

对 Result 使用绑定和 Kliesli 组合运算符

我尝试将 bind ( >>=) 和 Kleisli Composition ( >=>) 运算符与基本Result类型一起使用,但它们要么未定义,要么不在范围内:

let f x =
  if x%2 = 0 then Ok (x/2)
  else            Error ()

let ff x = Ok x >>= f >>= f
let ff' = f >=> f

[<EntryPoint>]
let main _ =
  printfn "%A" (ff 12)
  printfn "%A" (ff' 28)
  0
Run Code Online (Sandbox Code Playgroud)

错误 FS0043需要支持运算符“>>=”的类型,但给定了函数类型。您可能缺少函数的参数。

我尝试过open一些不同的名称空间来将定义纳入范围,但没有成功。

从这里看来,如果没有扩展,运算符就不能被一般地定义,但是在任何地方都有标准的定义吗Result

monads f#

1
推荐指数
1
解决办法
223
查看次数