小编Rob*_*sch的帖子

是否可以在Kotlin的列表中传播列表?

可以在Kotlin中进行参数解包,类似于在Python中完成的方式吗?例如

>>> a = [1,2,3]
>>> b = [*a,4,5,6]
>>> b
[1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

我知道在Kotlin有可能如下:

>>> listOf(1, 2, 3, *listOf(4,5,6).toTypedArray())
[1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

在Kotlin有一种更简单的方式.有任何想法吗?

kotlin

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

Bigquery 错误:UPDATE/MERGE 必须为每个目标行最多匹配一个源行

只是想知道是否有人可以帮助解决以下错误:

UPDATE/MERGE 必须为每个目标行最多匹配一个源行

我的查询如下:

UPDATE `sandbox.sellout` s
SET s.SKU_Label = TRIM(SKU_TEMP.SKU)
FROM (SELECT SKU, Old_SKU FROM `sandbox.ref_sku_temp`) SKU_TEMP
WHERE TRIM(SKU_TEMP.Old_SKU) = TRIM(s.SKU)
Run Code Online (Sandbox Code Playgroud)

google-bigquery

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

在应用程序运行时用Java刷新打印机

正如标题所说,我想在我的Java应用程序运行时刷新在计算机设置中注册的打印机.通常,我可以使用PrinterJob.lookupPrintServices()打印机.但是,这些只在重新启动应用程序时刷新.我已经读过一些关于lookupPrintServices()的内容应该在一个新的线程中完成以获得打印机.然而,这不起作用,打印机列表保持不变.在下面的链接显示,这个问题应该被固定在Java 5.0中,我做错了什么?

任何帮助深表感谢!

编辑 添加了MWE.

public class MTPrinterTest extends Thread {
    public static void main(String[] args) {
        MTPrinterTest t1 = new MTPrinterTest();
        t1.start();

        try {
            System.in.read();
        } catch (Exception e){}

        MTPrinterTest t2 = new MTPrinterTest();
        t2.start();
    }
    public void run() {
        PrinterJob printerJob;
        PrintService[] printServices;

        printerJob = PrinterJob.getPrinterJob();
        printServices = printerJob.lookupPrintServices();
        System.out.println("Number of servies found: " + printServices.length);
        for (int i =0; i< printServices.length; i++)
            System.out.println("--> Available Printer " + i + ": " + printServices[i]); …
Run Code Online (Sandbox Code Playgroud)

java printing

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

使用 serviceaccount 进行 Firebase 托管部署失败并显示 403

我正在尝试通过管道(Gitlab,但这对这个问题无关紧要)部署一个带有服务帐户(我自己创建,而不是 Google/Firebase 默认提供的服务帐户)的 Firebase 托管项目。

当我在本地运行以下命令时(管道中也会发生同样的情况):

GOOGLE_APPLICATION_CREDENTIALS="/path/to/serviceaccount.json" firebase deploy --only hosting
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

=== Deploying to 'my-firebase-project'...

i  deploying hosting

Error: HTTP Error: 403, The caller does not have permission
Run Code Online (Sandbox Code Playgroud)

--debug不提供任何更多的细节,除了403我已经设置了以下角色的serviceaccount:

  • Firebase 托管管理员
  • Firebase 规则管理员
  • API 密钥查看器

部署规则(使用--only firestore)没有问题。我已阅读有关Firebase 托管角色的文档,但分配这些角色也不起作用。

有谁知道我缺少哪些角色?

注意:这里使用服务帐户进行部署,因此任何firebase login/firebase logout操作都不会产生任何影响。有关详细信息,请参阅使用 gcloud 服务帐户登录 firebase

firebase firebase-hosting google-cloud-iam

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

JavaFX Dialog隐藏了Ubuntu 14.10(Utopic Unicorn)的全屏舞台

我使用的是带有Java 8u40(替换ControlsFX对话框)的Dialog,以在全屏舞台上创建一个对话框窗口.我正在研究的操作系统是Ubuntu 14.10,我正在运行Eclipse中的应用程序.

出现对话框时,隐藏主要阶段.对话框背后的实际背景是我的桌面.显然,我想保留主JavaFX阶段作为对话框的背景.在这种情况下,对话框放在主要阶段的顶部.在Mac OSX 10.10优胜美地和Windows 8.1上,这是正常的.在旧版本的Ubuntu(14.04 Trusty)上,问题也存在.当primaryStage 不是全屏时,对话框显示在primarystage的顶部,并且不隐藏primarystage (因此它的工作方式应该如此).

有人认出这个问题吗?我已经尝试将对话框的所有者设置为nullprimaryStage.getOwner(),如此问题中提到的当舞台处于全屏模式时隐藏的JavaFX弹出窗口:

Alert alert = new Alert(AlertType.CONFIRMATION);
alert.initOwner(Main.primaryStage.getOwner());
alert.initModality(Modality.WINDOW_MODAL);
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏!

java ubuntu dialog javafx

5
推荐指数
0
解决办法
616
查看次数

将 Spring Boot 属性注入 Kotlin Singleton / 对象

我有一个 Spring Boot 2 项目,并且正在使用 Kotlin。我想要实现的是拥有一个 Kotlin 单例(即一个对象)并注入 Spring 属性。

通常,我会使用构造函数注入来执行此操作,这是首选方式。但是,对于对象,不允许使用构造函数。lateinit var另一种选择是与 结合使用@Value("\${my.property.name}"),尽管那样我必须初始化字段或显式设置类型。

我找不到这方面的示例或类似情况,所以我很好奇这个用例所需的方法是什么。

singleton kotlin spring-boot

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

Kotlin 泛型多个上限(作为 OR / union 构造)

我想知道是否有可能创建一个泛型类,它接受一个 type 的实例T,它仅限于(例如) 的实例String或 的实例List<String>。以如下伪代码为例:

data class Wrapper<T : String | List<String>>(val wrapped: T)
Run Code Online (Sandbox Code Playgroud)

这非常类似于UnionKotlin 中不存在的构造(按设计)。我很好奇这是否可以在编译时检查中实现。上面提供的伪代码类将用于提供 的单个对象实例String,如果提供了多个实例,则它应该是一个List<String>.

解决此问题的其他选项包括:

  1. 每个“变体”的单独类,即:
    data class Wrapper<T : String>(val wrapped: T)
    data class ListWrapper<T : List<String>>(val wrapped: T)
    
    Run Code Online (Sandbox Code Playgroud) 这里的缺点显然是它是部分重复的代码。
  2. 删除上限,并使用init块进行实例类型检查。这里的缺点是检查移动到运行时。

编辑:我知道使用关键字有多个上限where,但是,这会导致对符合两个上限的接受类型的限制(因此,它是一个AND构造)

generics upperbound kotlin

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

在R中生成晶格路径

例如,如果我有一个如下所示的晶格:

          133.1
         /
       121
      /  \
    110   108.9
   /  \  / 
 100   99
   \  /  \
    90    89.1
      \  /
       81
         \
          72.9
Run Code Online (Sandbox Code Playgroud)

格子从100开始,并且要么以1.1的系数上升,要么以0.9的系数下降.这个晶格有3个周期,它上升或下降.很明显,这个矩阵可以填充更长的时间.

矩阵形式的晶格如下所示:

     [,1] [,2] [,3]  [,4]
[1,]  100  110  121 133.1
[2,]   NA   90   99 108.9
[3,]   NA   NA   81  89.1
[4,]   NA   NA   NA  72.9
Run Code Online (Sandbox Code Playgroud)

我在R.工作.生成晶格矩阵的代码如下:

#Parameters
S0 <- 100 #price at t0
u <- 1.1 #up factor
d <- 0.9 #down factor
n <- 3 #number of periods

#Matrix for the prices
prices <- matrix(data=NA, …
Run Code Online (Sandbox Code Playgroud)

r matrix mathematical-lattices

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

为什么由于“容器被调度程序抢占”而导致 mapreduce 尝试被杀死?

我刚刚注意到 Hadoop 上的许多 Pig 作业由于以下原因而被终止: Container preempted by scheduler

有人可以解释一下是什么原因造成的,以及我是否应该(并且能够)对此做些什么?

谢谢!

hadoop apache-pig

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