小编Chr*_*iss的帖子

JVisualVM无法使用--openpid参数连接到进程

我有一个作为win-service运行的应用程序(使用Apache-Procrun).我想用JVisualVM监视该应用程序.我--openpid <PID>没有成功使用命令行参数,具有讽刺意味的是,旧的JConsole设法连接到该应用程序.

JVisualVM vs JConsole 0:1

我还检查%TMP%\hsperfdata_username了JVisualVM- 故障排除指南中描述的-Directory的所有问题.一切都很好.

如何让JVisualVM监控我的应用程序?

java jconsole jvisualvm procrun java-service-wrapper

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

Intellij IDEA:无法获取GitHub存储库列表

我在Win7上使用IntelliJ IDEA 15.0.1并希望使用wizzard中的build来签出GitHub项目.不幸的是我收到以下错误:

无法获取GitHub存储库列表,无法获取可用存储库方法不允许

从GitHub结账

我配置了我的代理设置和我的GitHub用户名和密码.我忘记了什么吗?

编辑:当我在IntelliJ设置 - >版本控制> GitHub下测试连接时,我收到以下错误:

无法登录:无法获取用户信息方法不允许

github intellij-idea github-api

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

如何在java 8 stream api中使用guava Predicates作为过滤器

Guava Predicates不能作为java 8 streaming API的过滤器使用.

例如,这是不可能的:

Number first = numbers.stream()
    .filter( com.google.common.base.Predicates.instanceOf(Double.class)))
    .findFirst()
    .get();
Run Code Online (Sandbox Code Playgroud)

当guava谓词转换为java 8谓词时,如何可能,如下所示:

public static <T> Predicate<T> toJava8(com.google.common.base.Predicate<T> guavaPredicate) {
  return (e -> guavaPredicate.apply(e));
}

Number first = numbers.stream()
    .filter( toJava8( instanceOf(Double.class)))
    .findFirst()
    .get();
Run Code Online (Sandbox Code Playgroud)

问题:有没有更优雅的方法在java 8中重用guava Predicates?

java collections guava java-8 java-stream

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

Gradle从服务器收到状态码403:禁止

由于此错误,我无法构建我的android项目。Gradle无法获取https://www.jitpack.io/com/github/Raizlabs/DBFlow/dbflow/3.1.1/dbflow-3.1.1.pom。足够奇怪的是,我能够在浏览器中查看此URL后面的pom文件。这可能是什么问题?

我的gradle.properties看起来像这样:

systemProp.http.proxyHost=myproxy.local
systemProp.http.proxyPort=3210
systemProp.https.proxyHost=myproxy.local
systemProp.https.proxyPort=3210
systemProp.http.proxyUser=usr
systemProp.http.proxyPassword=pwd
Run Code Online (Sandbox Code Playgroud)

当我删除proxyUser / Password时,需要407 Proxy Authentication。

proxy gradle android-gradle-plugin

5
推荐指数
2
解决办法
8363
查看次数

无法编译内部构造函数调用原因:预期主构造函数调用

假设我们有以下主要和次要构造函数:

open class Animal(val name:String){
  internal constructor(message:InputStream): this(readName(message))
}
Run Code Online (Sandbox Code Playgroud)

为什么不能调用超类的内部构造函数?

class Dog(name:String):Animal(name){
   internal constructor(message:InputStream):super(message)
                                             ^^^^^
                                             Primary constructor call expected
}
Run Code Online (Sandbox Code Playgroud)

编辑

显然,当主构造函数转换为辅助构造函数或完全删除时,它会编译。

class Dog:Animal{
   constructor(name:String):super(name)
   internal constructor(message:InputStream):super(message)

}
Run Code Online (Sandbox Code Playgroud)

这是编译器错误吗?

constructor compilation kotlin

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

如何为 Java 调用者声明一个返回类型为“void”的 Kotlin 函数?

我有一个完全用 Kotlin 编写的库,包括其公共 API。现在库的用户使用 Java,这里的问题是具有返回类型的 Kotlin 函数Unit没有编译为返回类型void。结果是 Java 端必须始终为有效无效的方法返回 Unit.INSTANCE。这可以以某种方式避免吗?

例子:

Kotlin 接口

interface Foo{
  fun bar()
}
Run Code Online (Sandbox Code Playgroud)

Java实现

class FooImpl implements Foo{
   // should be public void bar()
   public Unit bar(){  
      return Unit.INSTANCE 
      // ^^ implementations should not be forced to return anything 
   }
}
Run Code Online (Sandbox Code Playgroud)

是否可以以不同方式声明 Kotlin 函数以便编译器生成voidorVoid方法?

java kotlin

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

如何为Java调用者声明返回类型为“ void”的Kotlin Lambda?

我有一个完全用Kotlin编写的库,包括其公共API。现在,该库的用户使用Java,这里的问题是带有返回类型的Kotlin Lambdas Unit没有被编译为返回类型void。结果是Java端必须始终返回Unit.INSTANCE有效的方法void。可以避免这种情况吗?

例:

Kotlin Lambda

interface Foo{
  fun bar(x:(String)->Unit)
}
Run Code Online (Sandbox Code Playgroud)

Java调用

public void call(){
   foo.bar(this::processString)
}

//the return type should rather be void instead of Unit
public Unit processString(String s){  
    return Unit.INSTANCE 
    // ^^ implementations should not be forced to return anything 
 }
Run Code Online (Sandbox Code Playgroud)

是否可以以不同的方式声明Kotlin Lambda,以便编译器生成void返回类型?

另请参阅如何为Java调用程序声明返回类型为“ void”的Kotlin函数?

java lambda kotlin

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

如何将 Kotlin 代码编译为 jvmTarget="1.8" 进行测试

在我们的 Android 项目中,我们使用 Kotlin 进行编码并以 java 1.6 为目标。然而,我们在测试中被迫使用 java 1.8,因为一些 JUnit5 功能需要它(接口中的静态方法)。

是否可以以不同于生产代码的方式编译测试?

我们试图通过将其添加到我们的 build.gradle 中来将 jvmTarget 提高到 1.8:

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
        kotlinOptions {
            jvmTarget = "1.8"
        }
}
Run Code Online (Sandbox Code Playgroud)

这也会提高生产代码的 jvmTarget,但我们只需要它用于测试。文档表明可以这样指定测试:

compileReleaseUnitTestKotlin{
    kotlinOptions {
        jvmTarget = "1.8"
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的build.gradle是无法编译。

android gradle kotlin android-gradle-plugin junit5

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

如何在VisualVM中更改应用程序名称?

如何在VisualVM中更改应用程序名称?我有多个应用程序,从我的IDE开始,但很难区分它们,名称是相同的,唯一的区别是PID.所以我想给他们有意义的名字,但菜单项"重命名.."被禁用.如何重命名应用程序?在我看来,重命名只能在快照上进行 - > 快照的描述

禁用

java visualvm jvisualvm

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

kotlin-test:如何测试特定类型,例如:“是 X 的 y 实例”

如何测试 val/var 是否属于预期类型?

我在 Kotlin 测试中缺少什么,例如:

value shouldBe instanceOf<ExpectedType>()
Run Code Online (Sandbox Code Playgroud)

这是我如何实施它:

inline fun <reified T> instanceOf(): Matcher<Any> {
    return object : Matcher<Any> {
        override fun test(value: Any) =
                Result(value is T, "Expected an instance of type: ${T::class} \n Got: ${value::class}", "")

    }
}
Run Code Online (Sandbox Code Playgroud)

instanceof kotlin kotlintest

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