小编Vla*_*kov的帖子

如何通过Java获取系统/硬件信息?

我需要通过Java应用程序获取系统和硬件信息.

我对......感兴趣:

  • Os细节;
  • 处理器数量,名称,处理器负载百分比;
  • 记忆状态(总/免费);
  • 每个进程的Os进程(线程)计数和CPU /内存使用情况;
  • 网络统计(针对每个接口);

是否有可以执行此操作的Java库?

java system jna system-information

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

磁铁模式和重载方法

对于非重载和重载方法,Scala如何解析"Magnet Pattern"的隐式转换有很大差异.

假设存在如下实现的特征Apply("磁体模式"的变体).

trait Apply[A] {
 def apply(): A
}
object Apply {
  implicit def fromLazyVal[A](v: => A): Apply[A] = new Apply[A] {
    def apply(): A = v
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我们创建一个Foo具有单个apply实例的特征,Apply因此我们可以将任意类型的值传递给它,A因为存在隐式转换A => Apply[A].

trait Foo[A] {
  def apply(a: Apply[A]): A = a()
}
Run Code Online (Sandbox Code Playgroud)

我们可以确保它使用REPL按预期工作,并使用此解决方法来减少Scala代码.

scala> val foo = new Foo[String]{}
foo: Foo[String] = $anon$1@3a248e6a

scala> showCode(reify { foo { "foo" } }.tree)
res9: String =    
$line21$read.foo.apply( …
Run Code Online (Sandbox Code Playgroud)

scala implicit

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

为什么我们需要像Lua这样的可嵌入编程语言?

使用可嵌入编程语言的典型用例是什么?我是否正确理解这种语言是否应嵌入到某些程序环境中并且应该能够从那里执行?

embed lua programming-languages embedded-language

17
推荐指数
2
解决办法
7058
查看次数

从Java访问Scala嵌套类

假设我们在Scala中有以下类结构.

object Foo {
  class Bar
}
Run Code Online (Sandbox Code Playgroud)

我们可以Bar用Java 轻松构造new Foo.Bar().但是当我们添加额外级别的嵌套类时,一切都会改变.

object Foo {
  object Bar {
    class Baz
  }
}
Run Code Online (Sandbox Code Playgroud)

不知何故,Baz在Java中构建最内部的类已经不可能了.看javap输出,我看不出第一(2级)和第二级(3级)之间有任何显着差异.生成的代码对我来说看起来很合理.

2个级别:

public class Foo$Bar { ... }
Run Code Online (Sandbox Code Playgroud)

3个级别

public class Foo$Bar$Baz { ... }
Run Code Online (Sandbox Code Playgroud)

话虽如此,当他们从Java访问时,2级与3级嵌套Scala类之间的区别是什么?

java scala

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

将Scala的列表转换为带有标记为键的地图

我想做的就是转换以下内容:

List(2, 4, 6, 8, 10)Map(0 -> 2, 1 -> 4, 2 -> 6, 3 -> 8, 4 -> 10 ).换句话说,将索引映射到值.它应该很容易,但我遗漏了一些东西.

任何人都可以建议一个简单的方法吗?

UPD:只是为了推广解决方案.假设我需要执行额外的值转换.例如,用它包装List(_).在我们的情况下:

List(2, 4, 6, 8, 10) - > Map(0 -> List(2), 1 -> List(4), 2 -> List(6), 3 -> List(8), 4 -> List(10))

collections scala list map

8
推荐指数
3
解决办法
6276
查看次数

是否可以在不可变链表中创建一个循环?

假设我们在Java中具有以下结构:

class List {
  // we're immutable
  final List next;
  final int value;

  public List(int value, List next) {
    this.next = next;
    this.value = value;
  }
}
Run Code Online (Sandbox Code Playgroud)

Scala内置了对不可变单链表的支持.这将是:

val l = List(1, 2, 3) // immutable
Run Code Online (Sandbox Code Playgroud)

那么,是否有可能在这种列表中创建一个循环(不可变的单链表).按周期,我的意思是:

在此输入图像描述

java algorithm scala linked-list

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

在红黑树中存储颜色信息时如何保存内存?

我在Coursera算法课程中碰到了这个问题,并意识到我不知道该怎么做.但是,我仍然有一些想法.我想到的第一件事是使用优化的位集(如Java BitSet)来获取映射节点key -> color.因此,我们所需要的是为整个树分配一个位集并将其用作颜色信息源.如果树中没有重复元素 - 它应该可以工作.

很高兴看到其他人对这项任务的看法.

algorithm binary-tree red-black-tree binary-search-tree data-structures

7
推荐指数
2
解决办法
2051
查看次数

提供Scala.js资产

我已经开始使用FinchScala.js开发新项目,后端和前端需要共享一些代码.

我担心fastOptJSFinch 生产JS的好方法.目前,我正在使用自定义的SBT任务从中复制文件js/target/scala-2.11/*.jsjvm/src/main/resources.但我想知道是否有更好的方法来做到这一点.

我看到了很棒的SPA教程,它使用了sbt-play-scalajs插件,但它似乎只适用于Play.

scala sbt finch asset-pipeline scala.js

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

在Guice可选注射

有可能告诉Guice没有必要注入所有构造函数参数吗?例如,我有一个构造函数Foo,它利用类型有两个参数BarBaz.所有这些在我的系统中都是可选的:它们可能是

  1. 两者都在场
  2. 都失踪了
  3. 只有Bar在场
  4. 只有Baz在场.

也就是说,它取决于提供这些绑定的其他模块.我想得到这样的东西:

class Foo {
  private final Bar bar;
  private final Baz baz;

  @Inject(optional = true)
  public Foo(@Nullable Bar bar, @Nullable Baz baz) {
    this.bar = bar;
    this.baz = baz;
  }
}
Run Code Online (Sandbox Code Playgroud)

但我不能真正使用optional构造函数.有没有办法做到这一点?

java guice

4
推荐指数
2
解决办法
7179
查看次数

什么是在Scala中重用函数结果的好方法

让我通过例子澄清我的问题.这是在Scala中使用尾递归编写的标准取幂算法:

def power(x: Double, y: Int): Double = {
  def sqr(z: Double): Double = z * z
  def loop(xx: Double, yy: Int): Double = 
    if (yy == 0) xx
    else if (yy % 2 == 0) sqr(loop(xx, yy / 2))
    else loop(xx * x, yy - 1)

  loop(1.0, y)
}
Run Code Online (Sandbox Code Playgroud)

这里的sqr方法用于产生结果的平方loop.看起来不是一个好主意 - 为这样一个简单的操作定义一个特殊的功能.但是,我们不能只改写loop(..) * loop(..),因为它使计算加倍.

我们也可以使用val和不使用sqr函数编写它:

def power(x: Double, y: Int): Double = {
  def loop(xx: Double, yy: Int): Double …
Run Code Online (Sandbox Code Playgroud)

functional-programming scala

3
推荐指数
2
解决办法
366
查看次数