小编dje*_*lin的帖子

设置Java退出代码而不退出

在具有大量关闭操作的高度并发程序中,想知道如何在不过早调用System.exit()的情况下设置退出代码?可以设置"当其他一切完成时执行此代码"方法?但我真的只想提前设置退出代码.

java shutdown exit-code

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

Java中的C++移位运算符<<的等价物?

C++移位运算符<<不循环.例如,如果你这样做:

// C++
int a = 1;
cout << (a<<38);
Run Code Online (Sandbox Code Playgroud)

你得到0.但是,在Java中你实际上是循环并获得64的有效值.

我需要将一些C++代码翻译成Java,那么我使用什么作为等价物<<呢?

c++ java porting

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

具有所需构造函数参数的Restlet服务器资源

在restlet中获取此错误:

ForwardUIApplication ; Exception while instantiating the target server resource.
java.lang.InstantiationException: me.unroll.forwardui.server.ForwardUIServer$UnsubscribeForwardUIResource
Run Code Online (Sandbox Code Playgroud)

我确切知道为什么.这是因为我的构造函数看起来像这样:

public UnsubscribeForwardUIResource(MySQLConnectionPool connectionPool) {
Run Code Online (Sandbox Code Playgroud)

并且Restlet访问资源,如下所示:

router.attach(Config.unsubscribeUriPattern(), UnsubscribeForwardUIResource.class);
Run Code Online (Sandbox Code Playgroud)

问题是我实际上需要那个ctor参数.我怎样才能访问它?(注意我没有使用任何IOC框架,只有很多ctor参数,但这实际上是一个IOC模式).

java inversion-of-control restlet

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

Webstorm在匿名函数声明中关闭了新空格

我有这个:

exports.getsertHexId = function (table, hex) {
Run Code Online (Sandbox Code Playgroud)

Webstorm 8的自动缩进是在关键字function和开放式paren 之间创建空间(.

其设置空间选项包括:

  • 函数声明括号
  • 函数调用括号
  • '如果'括号
  • ...

困惑,因为这应该涵盖在功能声明括号下我想.这可以正确配置吗?这是一个错误吗?

javascript webstorm

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

关闭IntelliJ中公共功能的未使用代码警告

Eclipse对此非常聪明; IntelliJ还没有.当然,如果一个函数未被使用(并且未经测试,我想我应该感觉不好 - 即使它只是返回一个简单的变量,或者实现其他人的界面)但是公开的,它可能会在其他地方使用.查看"检查"并搜索"未使用",我看不到可见性设置.这种粒度是否存在?

java warnings visibility intellij-idea inspection

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

可见性如何适用于Java嵌套类?

我正在尝试学习分配给嵌套类的可见性,除了我的IDE对我大吼大叫之外我还要做什么.这可能会变得任意复杂,所以我需要理解一般规则.

public class A {
    private static class B {
        public int foo; // accessible in A?
        private int bar; // accessible in A?
        public static class C { // accessible in A? everywhere?
        }
        private static class D { // accessible in A?
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

据我所知,修饰符似乎在"文件"级别解析,而不是在封装类的级别.一旦有一件事是私人的,其中的任何东西都是私人的.

这个或技术解释的实际机制是什么?这是在某处记录的还是我只需要阅读JLS?

java visibility

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

使用-g在Linux上构建OpenSSL以进行调试

我有一个来自OpenSSL(特别是SSL_read)的段错误,我想调试.我认为这里采取的最佳步骤是使用调试符号自己构建库,这样我就可以进入函数并查看它正在发生的命令.我不清楚如何a)自己构建库和b)破解makefile给我调试符号.有没有人有使用这个特定库的经验,或者对这种构建和修改方法有一般指导?

得到此错误:

./config -d
Operating system: x86_64-whatever-linux2
This system (debug-linux-x86_64) is not supported. See file INSTALL for details.
Run Code Online (Sandbox Code Playgroud)

不知道该怎么做.OS信息:

$ cat /proc/version
Linux version 3.2.0-24-virtual (buildd@yellow) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.31ubuntu5) ) #37-Ubuntu SMP Wed Apr 25 10:17:19 UTC 2012
$ uname -srvio
Linux 3.2.0-24-virtual #37-Ubuntu SMP Wed Apr 25 10:17:19 UTC 2012 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

debugging openssl makefile compilation build

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

仅在1900年Java日期计算中出现30分钟错误

package check;

import java.util.Calendar;

public class Test {
    public static void main(String[] args) {
        // length of a day
        long DAY_MILLIS = 1000 * 60 * 60 * 24;

        Calendar cal = Calendar.getInstance();

        cal.set(1900, 0, 1, 0, 0, 0);
        System.out.println(cal.getTime());

        cal.setTimeInMillis(cal.getTimeInMillis() + DAY_MILLIS);
        System.out.println(cal.getTime());
    }
}
Run Code Online (Sandbox Code Playgroud)

它的结果是:

Mon Jan 01 00:00:00 KST 1900
Mon Jan 01 23:30:00 KST 1900 // Where is 30 minutes here?
Run Code Online (Sandbox Code Playgroud)

最有趣和最重要的线索是这个问题发生在年仅1900年.

java time calendar

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

检查一个布尔选项集

嗯,这有点像hacky:

function b2n(boo) {
    return boo ? 1 : 0;
}

if(b2n(opt1) + b2n(opt2) + b2n(opt3) !== 1) {
    throw new Error("Exactly one option must be set");
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法在Javascript中执行此操作?使用任何一个

  • 更智能的布尔/数字处理
  • 偷偷摸摸的阵列或功能操作

等等.欢迎使用Javascript和Node解决方案.

在我的实际问题中,选项来自Node模块指令器,因此我不处理真正的布尔值,只是真正的虚假和虚假的东西.也可能有指挥官解决方案.

javascript node.js

9
推荐指数
2
解决办法
258
查看次数

Typescript - 如何检查给定值是否在联合类型数组中

我有一个给定的联合类型的数组,然后想检查数组中是否包含来自联合类型的超集的字符串(运行时检查):

const validOptions: ("foo" | "bar")[] = ["foo", "bar"]
type IArrType = typeof validOptions[number]
const key: IArrType | "alien" = "alien" // Rather: some random function
const isKeyInArr = validOptions.indexOf(key) > -1 // Error: "alien" is not assignable to "foo" | "bar"

// Fix 1:
const isKeyValidCast = validOptions.indexOf(<IArrType>key) > -1 
// Fix 2:
const isKeyValidExplicit = 
      key === "alien" ? false : validOptions.indexOf(key) > -1 // OK: type guard magic
Run Code Online (Sandbox Code Playgroud)

修复1可以,但不是很优雅.修复2愚弄编译器,但是误导和低效的运行时.在我的例子中,"外来"字符串类型只是不在联合类型中的任何字符串的占位符.

有没有什么方法可以在没有强制转换或显式测试的情况下编译?表达式可以否定,以便我们让这个"类型后卫"起作用吗?

顺便说一句:这个非常酷的答案展示了如何从值列表构造一个类型化的元组:Typescript从元组/数组值派生联合类型

typescript

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