小编gia*_*olo的帖子

哪些Scala方法返回null而不是Option,为什么?

我想知道标准库是完全null免费的 - 如果不是 - 会感兴趣的是合理的用例存在哪些返回null比返回一些Option实例更可取.

methods null scala standard-library scala-option

11
推荐指数
2
解决办法
590
查看次数

Gson中的DateFormat模式"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"

我有两个字段如下(注意第一个字段有毫秒部分):

{
  "updateTime":"2011-11-02T02:50:12.208Z",
  "deliverTime"?"1899-12-31T16:00:00Z"
}
Run Code Online (Sandbox Code Playgroud)

我想用Json将Json字符串反序列化为一个对象,所以我得到一个Gson实例:

GsonBuilder gb = new GsonBuilder();
gb.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
gson = gb.create();
Run Code Online (Sandbox Code Playgroud)

第一个字段被反序列化为Java日期类型:2011-11-02 02:50:12.208(看起来像忽略了时区部分-'Z',这是我所期望的).但是,第二个字段被反序列化为1900-01-01 00:00:00(我住在中国,这里是+ 8 GMT),似乎时区部分-'Z'在反序列化中起作用.

为什么第二个字段使用时区部分?这不是我的预期.

java timezone gson

11
推荐指数
1
解决办法
6万
查看次数

在Java中计算可用内存的最佳方法是什么?

我试图计算我的Java程序可用的内存量.我有这个当前的实现:

long getAvailableMemory() {
  Runtime runtime = Runtime.getRuntime();
  long totalMemory = runtime.totalMemory();
  long freeMemory = runtime.freeMemory();
  long maxMemory = runtime.maxMemory();
  long usedMemory = totalMemory - freeMemory;
  long availableMemory = maxMemory - usedMemory;
  return availableMemory;
}
Run Code Online (Sandbox Code Playgroud)

是对的吗?是否有更简单/更准确的方法来计算这些信息?看了别人的代码后,我看到了类似的东西,略有不同:

long getAvailableMemory() {
  long totalVmHeap = Runtime.getRuntime().totalMemory();
  long freeVmHeap = Runtime.getRuntime().freeMemory();
  long usedVmHeap = totalVmHeap - freeVmHeap;
  long maxVmHeap = Runtime.getRuntime().maxMemory();
  long availableVmHeap = maxVmHeap - usedVmHeap + freeVmHeap;
  return availableVmHeap;
}
Run Code Online (Sandbox Code Playgroud)

无论如何,获取这些信息的正确方法是什么?

java memory jvm

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

Java中的人类可编辑JSON或类似YAML的程序配置

是否存在类似于C++的libconfig的Java库,其中配置文件以类似JSON的格式存储,可以由人类编辑,然后从程序中读取?

我不想使用Spring或任何更大的框架.我正在寻找的是一个小型,快速,独立的库.我看了java.util.Properties,但它似乎不支持分层/嵌套配置数据.

java configuration hocon

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

当Gson反序列化JSON时,是否可以使用setter?

有没有办法在使用Gson fromJson方法时使用给定类的set 方法?

我想这样做是因为对于String目标类的每个全局变量都进行了修剪.

是否有任何GSON API注释?

我知道GSON提供了编写自定义序列化器/反序列化器的能力,但我想知道是否有另一种方法来实现这一点.

java json gson deserialization

10
推荐指数
2
解决办法
8608
查看次数

如何在UITableView中初始选择一行

我找不到打电话selectRowAtIndexPath:animated:scrollPosition:最初选择一行的好地方UITableView.在初始化表视图控制器时,尚未加载表数据,因此在初始化后我无法立即进行选择UITableViewController(否则会发生超限异常).

select uitableview

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

如何反转Option Monad的流量?

比方说,我有一堆"验证"函数,如果没有错误则返回None,否则返回Some(String)指定错误消息.像下面这样的东西......

def validate1:Option[String] 
def validate2:Option[String]
def validate3:Option[String]
Run Code Online (Sandbox Code Playgroud)

我将按顺序调用它们,一旦返回Some(String),我就会停止并返回相同的内容.如果它返回None,我会转到下一个,直到序列结束.如果所有这些都返回None,则返回None.

我想把它们粘在一起"表达".就像是 ...

for( a <- validate1; b <- validate2; c <- validate3) yield None;
Run Code Online (Sandbox Code Playgroud)

但是,Option完全与我想要的相反.它在None处停止,并以Some(String)跟随.

我怎样才能实现这样的目标?

scala scala-option

8
推荐指数
2
解决办法
1518
查看次数

为什么Option的orNull方法有这个多余的隐式参数?

我想知道这里的原因是什么(implicit ev: Null <:< A1):

sealed abstract class Option[+A] extends Product with Serializable { 
  def orNull[A1 >: A](implicit ev: Null <:< A1): A1 = this getOrElse null
  ...
}
Run Code Online (Sandbox Code Playgroud)

岂不

def orNull[A]: A = this getOrElse null
Run Code Online (Sandbox Code Playgroud)

考虑到它似乎甚至不适用于像这样的值类型

Option(1).orNull
Run Code Online (Sandbox Code Playgroud)

Option(1).getOrElse(null)
Run Code Online (Sandbox Code Playgroud)

呢?

Option源代码

parameters scala implicit scala-option

8
推荐指数
2
解决办法
4467
查看次数

抽象val而不是主构造函数参数

考虑这两个类以及创建实例的方式:

class Person1(val name: String)

val p1 = new Person1("John");
Run Code Online (Sandbox Code Playgroud)

和:

abstract class Person2 {
  val name: String
}

val p2 = new Person2 {
  val name = "John"
}
Run Code Online (Sandbox Code Playgroud)

为什么人们更喜欢后者(Person2)版本?每个这样的声明都会导致创建新的子类,而且代码稍微冗长且可读性较差,但是第二个习惯用法在ScalaProgramming中多次使用.直接领域有哪些优势?

scala scala-primary-constructor

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

发送邮寄请求

我需要使用spray框架发出一个简单的HTTP请求.我在他们的网站上发现了一些例子,但事实证明它们很复杂并且涉及Akka,这对我来说并不是必需的.

此外,我需要能够填写请求的标题(如X-Application,content-type等),当然还有请求的发布数据(在我的情况下,它将是JSON中的数据).

那我该怎么做?

json scala spray

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