小编wst*_*wst的帖子

如何在Gradle项目中将Kotlin的字节码版本设置为Java 8?

在Kotlin项目中,什么是正确的Gradle脚本以确保我的类将被编译为字节码52(Java 8)?

出于某种原因,即使我设置了源和目标兼容性,我的类也编译为ver 50(Java 6).至少这是Idea build/classes/...在构建项目后从目录中打开文件时向我显示的内容.

我目前的设置看起来像这样.

buildscript {
    ext {
        kotlinVersion = '1.0.5-2'
        springBootVersion = '1.4.2.RELEASE'
    }
    repositories { mavenCentral() }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}")
    }
}

apply plugin: 'kotlin'
apply plugin: 'org.springframework.boot'

tasks.withType(JavaCompile) {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}

## I also tried this and it hasn't helped
#sourceCompatibility = 1.8
#targetCompatibility = 1.8

repositories { mavenCentral() }

dependencies {
    compile("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}")
    compile('org.springframework.cloud:spring-cloud-starter-stream-rabbit')
}

dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:Camden.SR2" } }
Run Code Online (Sandbox Code Playgroud)

gradle kotlin

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

如何在 Rust 中断言 io 错误?

有很多教程展示了如何在 Rust 中编写单元测试。我读过十几本书,所有这些都侧重于在成功的情况下维护价值观。对于error. PartialEq默认情况下,错误不会实现特征,因此您不能使用assert_eq!宏。此外,根据发生的问题类型(例如io::Error,可能是不同类型的),某些函数可能会返回多个错误变体。我可以检查是否发生了错误,但这似乎还不够。

下面举例。

fn parse_data(input: i32) -> Result<i32, io::Error> {
    match input {
        0 => Ok(0),
        _ => Err(io::Error::new(io::ErrorKind::InvalidData, "unexpected number"))
    }
}

#[test]
fn test_parsing_wrong_data() {
    let result = parse_data(1);
    assert!(result.is_err());
    let got = result.unwrap_err();
    let want = io::Error::new(io::ErrorKind::InvalidData, "unexpected number");

    // compilation error here: binary operation `==` cannot be applied to type `std::io::Error`
    assert_eq!(want, got);
}
Run Code Online (Sandbox Code Playgroud)

我认为这不是惯用的方法,因为它没有编译。因此,问题是 - 在类似情况下,什么是适当且惯用的方法?

error-handling unit-testing rust

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

隐藏输入元素的Javascript和defaultValue

假设你有输入元素:

<input id="aaa" type="text" value="unchanged" />
Run Code Online (Sandbox Code Playgroud)

然后启动js脚本:

var e = document.getElementById("aaa");
e.value = "changed";
alert(e.defaultValue + "/" + e.value);
Run Code Online (Sandbox Code Playgroud)

结果将"未更改/更改".不幸的是,当你的输入元素是hidden:

<input id="aaa" type="hidden" value="unchanged" />
Run Code Online (Sandbox Code Playgroud)

...相同的js脚本似乎不再起作用了.结果"已更改/更改".这是一种正确的方法吗?如果是这样,为什么只有隐藏的表单元素表现不同

javascript dom

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

如何为IntelliJ IDEA的Rust项目提供标准库源?

我正在使用Mac进行开发.我使用brew install rust了Rust 1.13.0和用于IntelliJ IDEA的Rust插件0.1.0.1385.我创建了我的第一个测试项目,cargo并在用IDEA打开它时得到了消息

没有找到标准库源,一些代码洞察力将无法工作

我没有找到任何源安装,也没有找到Homebrew中的Rust源包.

如何忽略此步骤,如何为项目提供源代码以及实际意义?

homebrew intellij-idea rust

11
推荐指数
5
解决办法
6757
查看次数

Gradle Script Kotlin和dependencyManagement

我正在尝试将Spring Cloud Stream应用程序构建脚本移植到Kotlin.到目前为止,非常好,除了依赖管理块.在网上很难找到任何东西.样本也不包括该主题.

如何将以下块转换为build.gradle.kts?谢谢.

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:Camden.SR2"
    }
}
Run Code Online (Sandbox Code Playgroud)

spring build-script gradle kotlin

9
推荐指数
3
解决办法
2205
查看次数

如何在接受自动完成提示时使VSCode替换该单词?

JetBrains IDE平台有非常有用的功能,我使用了很多,我发现它是一个性能助推器.当我在编辑器中有一个单词,并且我想要更改或更新该单词时,我会执行以下操作.

  • 将光标放在单词的前面(或者在中间,例如,当我只想更改最后一部分时.)
  • 开始输入,直到我得到自动完成功能我想使用.
  • 按TAB或ENTER.
    • 在TAB上 - 旧词完全被新词取代.当我更新一些名称时,这一点特别有用,其中单词的开头是相同的,但结尾是不同的.例如,更改getTimeInSeconds()getTimeInMinutes()- 我将光标放在后面getTimeIn,获得自动完成功能,然后按TAB键.没有什么可以删除,一切都被替换.
    • 在ENTER上 - 从旧单词的开头替换新单词,但是光标右侧部分停留在屏幕上.

默认情况下,VSCode仅支持"ENTER"用例.它是否支持"TAB"用例?如果是这样,如何启用它?

autocomplete visual-studio-code

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

仅使用标准库,如何将错误包装在自定义错误中?

从 Go 1.13 开始,我们能够链接错误,解开它们并通过errors.Is()和检查链中的任何错误是否与任何预期错误匹配errors.As()

要包装错误,您所要做的就是使用%w动词,fmt.Errorf()如下所示。

fmt.Errorf("Custom message: %w", err)
Run Code Online (Sandbox Code Playgroud)

这很简单,它err用另外的消息包装在另一个中。但假设我需要更多的上下文而不仅仅是一条消息。如何包装我err自己的结构化自定义错误?仅使用 Go 1.13+ 标准库。

error-handling go

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

使用`final`修饰符的`val`属性的目的是什么?

最近IntelliJ建议添加final到其中一个val属性.此特定属性已在init {}块中初始化.我试图找出final val构造的语义是什么,何时应该使用它,但Kotlin是关于不变性的,如何在Java中val等效,final因此结果如此嘈杂,我找不到任何东西.

例:

final val id: Int // `final` suggested by IDE

init { id = 1 }
Run Code Online (Sandbox Code Playgroud)

类似财产的含义和可能用途是什么?通过应用final它所暗示的超越不可变性的限制,这是已知的?它与继承或外部访问有什么关系吗?

final如果财产是,IntelliJ停止了sugessting private.

immutability kotlin

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

Spring Cloud Stream消息来自/到JSON转换配置

我正在使用带有RabbitMQ活页夹的Spring Cloud Stream.它适用于byte[]有效负载和Java本机序列化,但我需要使用JSON有效负载.

这是我的处理器类.

@EnableBinding(Processor.class)
public class MessageProcessor {
    @ServiceActivator(inputChannel = Processor.INPUT, outputChannel = Processor.OUTPUT)
    public OutputDto handleIncomingMessage(InputDto inputDto) {
        // Run some job.
        return new OutputDto();
    }
}
Run Code Online (Sandbox Code Playgroud)

InputDto并且OutputDto是杰克逊注释的POJO.

  • 如何配置JSON转换策略?
  • 邮件标题应该如何被接受和处理?

json spring-rabbit spring-cloud spring-cloud-stream

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

Primefaces 3.5/CSS - selectOneMenu和按钮垂直对齐

在Primefaces 3.5中p:selectOneMenu,button当你将它们放在一行时,垂直对齐并且很奇怪.我的用例是:用户从菜单中选择选项,然后单击按钮激活它.问题是 - 两个组件必须在同一行(表行).

XHTML非常简单:

<h:form>
    <p:selectOneMenu>
        <f:selectItem itemLabel="test" itemValue="test"/>
    </p:selectOneMenu>
    <p:commandButton value="GO"/>
</h:form>
Run Code Online (Sandbox Code Playgroud)

不幸的是结果不是我所期望的: 错了对齐

我的期望是这样的: 想要对齐1 要么 想要对齐2

我试图用Firebug研究渲染的HTML代码,但老实说,我很难找到任何CSS边距,填充,左边,顶部或类似的东西可以帮助我.

任何人都在努力解决这个问题(希望 - 解决它)?

css themes primefaces

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