小编Vis*_*ium的帖子

通用数组在直接引用时抛出ClassCastException(在通过helper方法调用时不会抛出)

这太神奇了!看看这个简单的代码:

public class ArrayOFMagic<T> {

    protected T[] array;

    protected int showMeYouRLength() {
        return array.length;
    }

    ArrayOFMagic() {
        array = (T[]) new Object[10];
    }

    protected void set(T value, int index) {
        array[index] = value;
    }

    public static void main(String[] args) {
        ArrayOFMagic<Integer> arrayOFMagic = new ArrayOFMagic<Integer>();
        System.out.println(arrayOFMagic.showMeYouRLength());
        System.out.println("MAGIC INCOMING");
        System.out.println(arrayOFMagic.array.length);
    }

}
Run Code Online (Sandbox Code Playgroud)

输出:

10
MAGIC INCOMING
线程"main"中的异常java.lang.ClassCastException:[Ljava.lang.Object; 无法转换为[Ljava.lang.Integer; 在ArrayOFMagic.main(ArrayOFMagic.java:25)

我两次调用array.length.一次通过方法,直接一次.它在使用方法时继续,并在直接调用时抛出异常.Oo有人解释?

编辑:只是为了澄清:当没有直接调用时,类工作正常.你可以在数组元素和所有..上设置setter/getter!

java arrays generics casting

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

如何从build.sbt中分离任务代码

我已经为我的sbt项目编写了自定义任务并将其放入build.sbt.但是,我想将任务的代码放在单独的文件中,并从build.sbt导入它.我创建mytask.sbt了包含这样的东西:

lazy val myTask = taskKey[Unit]("my task")

myTask := {
   //doing task
}
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何从内部导入这个任务build.sbt所以我可以使用这样的东西:

compile <<= (compile in Compile) dependsOn myTask
Run Code Online (Sandbox Code Playgroud)

我知道有插件概念,但我认为这对我的需求来说太过分了.我想要的只是分开一些代码.

sbt

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

在 kotlin 中,Optional.of 不能使用泛型参数

为什么这不能编译?

fun <T> returnOptionalOf(t: T): Optional<T> {
    val optional: Optional<T> = Optional.of(t)
    return optional
}
Run Code Online (Sandbox Code Playgroud)

错误是

类型不匹配:推断类型为 T,但预期为 T 和 Any

如何让它发挥作用?

这编译得很好:

fun returnOptionalOfString(t: String): Optional<String> {
    val optional: Optional<String> = Optional.of(t)
    return optional
}
Run Code Online (Sandbox Code Playgroud)

kotlin

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

如何使用 Future[StandardRoute] 完成请求

我有简化的代码如下所示:

path("path")  {
  post {
    val routeFuture: Future[StandardRoute] = Future {
      //some app logic
      utilFunctionRoute()
    }

    ??? // complete the request
  }
}
Run Code Online (Sandbox Code Playgroud)

有一次,我有 Future[StandardRoute] 包含我的结果,但我不知道如何在不阻塞 Future 的情况下完成此请求。

scala akka-http

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

标签 统计

akka-http ×1

arrays ×1

casting ×1

generics ×1

java ×1

kotlin ×1

sbt ×1

scala ×1