可以在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有一种更简单的方式.有任何想法吗?
只是想知道是否有人可以帮助解决以下错误:
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) 正如标题所说,我想在我的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) 我正在尝试通过管道(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:
部署规则(使用--only firestore
)没有问题。我已阅读有关Firebase 托管角色的文档,但分配这些角色也不起作用。
有谁知道我缺少哪些角色?
注意:这里使用服务帐户进行部署,因此任何firebase login
/firebase logout
操作都不会产生任何影响。有关详细信息,请参阅使用 gcloud 服务帐户登录 firebase。
我使用的是带有Java 8u40(替换ControlsFX对话框)的Dialog,以在全屏舞台上创建一个对话框窗口.我正在研究的操作系统是Ubuntu 14.10,我正在运行Eclipse中的应用程序.
出现对话框时,隐藏主要阶段.对话框背后的实际背景是我的桌面.显然,我想保留主JavaFX阶段作为对话框的背景.在这种情况下,对话框放在主要阶段的顶部.在Mac OSX 10.10优胜美地和Windows 8.1上,这是正常的.在旧版本的Ubuntu(14.04 Trusty)上,问题也存在.当primaryStage 不是全屏时,对话框显示在primarystage的顶部,并且不隐藏primarystage (因此它的工作方式应该如此).
有人认出这个问题吗?我已经尝试将对话框的所有者设置为null
和primaryStage.getOwner()
,如此问题中提到的当舞台处于全屏模式时隐藏的JavaFX弹出窗口:
Alert alert = new Alert(AlertType.CONFIRMATION);
alert.initOwner(Main.primaryStage.getOwner());
alert.initModality(Modality.WINDOW_MODAL);
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏!
我有一个 Spring Boot 2 项目,并且正在使用 Kotlin。我想要实现的是拥有一个 Kotlin 单例(即一个对象)并注入 Spring 属性。
通常,我会使用构造函数注入来执行此操作,这是首选方式。但是,对于对象,不允许使用构造函数。lateinit var
另一种选择是与 结合使用@Value("\${my.property.name}")
,尽管那样我必须初始化字段或显式设置类型。
我找不到这方面的示例或类似情况,所以我很好奇这个用例所需的方法是什么。
我想知道是否有可能创建一个泛型类,它接受一个 type 的实例T
,它仅限于(例如) 的实例String
或 的实例List<String>
。以如下伪代码为例:
data class Wrapper<T : String | List<String>>(val wrapped: T)
Run Code Online (Sandbox Code Playgroud)
这非常类似于Union
Kotlin 中不存在的构造(按设计)。我很好奇这是否可以在编译时检查中实现。上面提供的伪代码类将用于提供 的单个对象实例String
,如果提供了多个实例,则它应该是一个List<String>
.
解决此问题的其他选项包括:
data class Wrapper<T : String>(val wrapped: T)
data class ListWrapper<T : List<String>>(val wrapped: T)
Run Code Online (Sandbox Code Playgroud)
这里的缺点显然是它是部分重复的代码。init
块进行实例类型检查。这里的缺点是检查移动到运行时。编辑:我知道使用关键字有多个上限where
,但是,这会导致对符合两个上限的接受类型的限制(因此,它是一个AND
构造)
例如,如果我有一个如下所示的晶格:
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) 我刚刚注意到 Hadoop 上的许多 Pig 作业由于以下原因而被终止: Container preempted by scheduler
有人可以解释一下是什么原因造成的,以及我是否应该(并且能够)对此做些什么?
谢谢!
kotlin ×3
java ×2
apache-pig ×1
dialog ×1
firebase ×1
generics ×1
hadoop ×1
javafx ×1
matrix ×1
printing ×1
r ×1
singleton ×1
spring-boot ×1
ubuntu ×1
upperbound ×1