小编Chr*_*iss的帖子

如何使用Guava将可能的空值转换为默认值?

如果传递的对象引用是,那么Guava是否提供了获取默认值的方法null?我正在寻找类似的东西<T> T nullToDefault(T obj, T default),如果obj是,则返回默认值.null

在stackoverflow上,我一无所获.我只是在寻找纯粹的番石榴解决方案(如果有的话)!

我在Gauva 10 API中找不到任何东西,只com.google.common.base.Objects看起来很有希望,但缺少类似的东西.

java guava

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

如何获取方法的行号?

是否可以使用反射或其他魔法获取方法的行号?
如果方法在当前Stacktrace内,则可能.使用Thread.currentThread().getStackTrace(),可以获得一个的行号StackTraceElement.但是如果我只有java.lang.reflect.Method对象,我该怎么办?

我发现这个,对于classes-> 如何从java.lang.Class对象获取源文件名/行号,但它对方法没用.

java reflection

15
推荐指数
2
解决办法
9851
查看次数

在没有HotSpotDiagnosticMXBean的情况下从应用程序内创建堆转储

如何在我的应用程序中创建堆转储,而不使用类HotSpotDiagnosticMXBean.由于访问限制java/rt.jar我无法编译它依赖于HotSpotDiagnosticMXBean.我知道如何解决eclipse.compiler错误,但是如何为我的构建修复它?有没有以编程方式创建堆转储的方法?

java jmx heap-dump

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

如何创建从cmd-line启动具有管理员权限的应用程序的快捷方式?

我有一个安装程序(Inno-Setup)将我的应用程序安装到用户定义的路径.在安装例程结束时,我想创建一个以管理员权限启动应用程序的快捷方式.该解决方案适用于从winXP到Win7的所有win版本.

我能做些什么来实现这个目标?

我知道使用批处理脚本可以执行令人讨厌的vb脚本.缺点是cmd窗口弹出窗口,它只适用于win7我猜.

我也尝试使用命令mklink创建超链接,但它不起作用,因为无法传递设置管理员权限的参数.

windows cmd inno-setup batch-file hyperlink

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

如何将Java.util.function.Predicate实现为Kotlin lambda?

我需要将a传递java.util.function.Predicate给Java函数。如何在Kotlin中将其实现为Lambda?

我需要调用的Java函数:

public void foo(Predicate<String> p)
Run Code Online (Sandbox Code Playgroud)

Java Lambda实现?:

foo(text-> true)
Run Code Online (Sandbox Code Playgroud)

Kotlin Lambda实现?:

foo{text:String -> true}  
    ^^^^^^^^^^^^ 
Type mismatch.
Required: Predicate<String>
Found:    (String) ? Boolean
Run Code Online (Sandbox Code Playgroud)

Kotlin版本1.2.21

java lambda kotlin

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

什么是ReentrantLock#tryLock(long,TimeUnit)在尝试获取锁时做什么?

什么是ReentrantLock#tryLock(long,TimeUnit)实现在尝试获取锁时执行的操作?假设线程A实际上拥有Lock of myLock和Thread B调用myLock.tryLock(10,SECONDS),是线程B正在休眠还是在等待?

换句话说,这是两个实现的区别:

1.

while (true)
   try {
     if (readLock.tryLock())
       return;
     MILLISECONDS.sleep(5);
   }catch (InterruptedException e) {}
Run Code Online (Sandbox Code Playgroud)

2.

 while (true)
   try {
     if (readLock.tryLock(5,MILLISECONDS))
       return;
   }catch (InterruptedException e) {}
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading java.util.concurrent

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

是否有比较器"自然地"排序可能包含数字的字符串,番石榴?

ComparatorGuava中是否有一个实现以"自然"方式对字符串进行排序,可能包含数字?
例如:
"a 8"
"a 9"
"a 10"

我找到了一些有趣的链接,但看起来guava中没有任何东西可以完成这项工作......

StackOverflow:"对可能包含数字的字符串进行排序"对Alphanum算法的
一个很好的解释

java sorting string guava

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

当我必须在Netty4编码器中调用ByteBuf.retain()时?

我正在编写一个NUL-终止JSON消息的编码器,以便在消息碎片化时对其进行解码.

我发现这个样品- > 点击这里ByteBuf.retain()被称为到底写现有ByteBuf到输出.他们为什么这样做,为什么需要呢?

这是我的编码器:

public class FrameEncoder extends MessageToMessageEncoder<ByteBuf> {

    @Override
    protected void encode(ChannelHandlerContext ctx, ByteBuf msg, List<Object> out) throws Exception {
        out.add(msg.retain());
        out.add(ctx.alloc().buffer(1).writeByte(NUL));
    }

}
Run Code Online (Sandbox Code Playgroud)

java netty

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

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
查看次数

TypeScript:模板文字类型不排除空格

如何声明禁止中间有空格的模板文字类型?

这就是我所拥有的,但它允许数字和单位之间有空格。

 type Duration =`${number}${'ms' | `s`}`
    
    let a: Duration = "2000 ms" // should not compile due to ' ' 
    let b: Duration = "2s" // ok
    let c: Duration = "2000ms" // ok
Run Code Online (Sandbox Code Playgroud)

>> typescriptlang.org 游乐场

string typescript

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