小编Aus*_*yde的帖子

Java switch语句:需要常量表达式,但它是常量

所以,我正在研究这个有一些静态常量的类:

public abstract class Foo {
    ...
    public static final int BAR;
    public static final int BAZ;
    public static final int BAM;
    ...
}
Run Code Online (Sandbox Code Playgroud)

然后,我想要一种基于常量获取相关字符串的方法:

public static String lookup(int constant) {
    switch (constant) {
        case Foo.BAR: return "bar";
        case Foo.BAZ: return "baz";
        case Foo.BAM: return "bam";
        default: return "unknown";
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我编译时,我constant expression required在每个3个案例标签上都会出错.

我知道编译器需要在编译时知道表达式来编译一个开关,但为什么不是Foo.BA_常量?

java compile-time-constant

159
推荐指数
7
解决办法
19万
查看次数

PHP中的大写布尔与小写

当我学习PHP时,我在某处读到你应该总是使用大写版本的布尔值,TRUE并且FALSE,因为"普通"小写版本,true并且false使用起来并不"安全".

它已经很多年了,我编写的每个PHP脚本都使用大写版本.但是,我现在质疑,因为我已经看到大量用小写版本编写的PHP(即Zend Framework).

是/有没有理由使用大写版本,还是完全可以使用小写?

编辑:忘了提及这适用于NULLnull.

php language-history

126
推荐指数
7
解决办法
3万
查看次数

在插入期间SQLite错误'尝试编写只读数据库'?

我有一个SQLite数据库,我用于一个网站.问题是,当我尝试INSERT INTO它时,我会得到一个PDOException

SQLSTATE[HY000]: General error: 8 attempt to write a readonly database
Run Code Online (Sandbox Code Playgroud)

我通过SSH连接到服务器并检查权限,数据库具有权限

-rw-rw-r--
Run Code Online (Sandbox Code Playgroud)

我不熟悉*nix权限,但我很确定这意味着

  • 不是目录
  • 所有者具有读/写权限(根据我的说法ls -l)
  • 组具有读/写权限
  • 其他人只有读取权限

我也看到了我知道使用该sqlite3程序的所有地方,并没有发现任何相关内容.

因为我不知道PDO试图打开数据库的权限,我做到了

chmod o+w supplies.db
Run Code Online (Sandbox Code Playgroud)

现在,我得到另一个PDOException:

SQLSTATE[HY000]: General error: 14 unable to open database file
Run Code Online (Sandbox Code Playgroud)

但它只发生在我打开数据库尝试执行INSERT查询时.

关于发生了什么的任何想法?

sqlite permissions

117
推荐指数
5
解决办法
14万
查看次数

我可以在obj /中将src /中的所有.cpp文件编译为.o,然后在./中链接到二进制文件.

我的项目目录如下所示:

/project
    Makefile
    main
    /src
        main.cpp
        foo.cpp
        foo.h
        bar.cpp
        bar.h
    /obj
        main.o
        foo.o
        bar.o
Run Code Online (Sandbox Code Playgroud)

我想让makefile做的就是将.cpp文件/src夹中的所有文件编译到.o文件/obj夹中的文件中,然后将所有.o文件链接/obj到顶级文件夹中的输出二进制文件中/project.

我几乎没有Makefiles的经验,我不确定要搜索什么来实现这一目标.

另外,这是一种"好"的方式,或者是否有更标准的方法来实现我的目标?

c++ build-process makefile

112
推荐指数
2
解决办法
12万
查看次数

NodeJS中的CoffeeScript示例?

作为一个宠物项目,我试图熟悉NodeJS和CoffeeScript,并且发现很难让球滚动.

我发现了很多单文件超级简单应用程序的例子,比如在CoffeeScript的examples文件夹中,但是,这些都没有真正显示完整应用程序的样子.我也让谷歌觉得无济于事.

您是否有我可以学习的中型,多文件CoffeeScript/NodeJS应用程序的示例?

node.js coffeescript

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

获取/关闭资源时Java try/catch/finally最佳实践

在研究学校项目时,我写了以下代码:

FileOutputStream fos;
ObjectOutputStream oos;
try {
    fos = new FileOutputStream(file);
    oos = new ObjectOutputStream(fos);

    oos.writeObject(shapes);
} catch (FileNotFoundException ex) {
    // complain to user
} catch (IOException ex) {
    // notify user
} finally {
    if (oos != null) oos.close();
    if (fos != null) fos.close();
}
Run Code Online (Sandbox Code Playgroud)

问题是Netbeans告诉我resource.close()线路抛出IOException,因此必须被捕获或声明.它也抱怨oos并且fos可能尚未初始化(尽管无效检查).

这看起来有点奇怪,看到整个点是如何阻止IOException那里的权利.

我的下意识修复是这样做的:

} finally {
    try {
        if (oos != null) oos.close();
        if (fos != null) fos.close();
    } catch (IOException ex) { …
Run Code Online (Sandbox Code Playgroud)

java resources try-catch

40
推荐指数
3
解决办法
5万
查看次数

Safari JS无法解析YYYY-MM-DD日期格式?

在我正在进行的项目中,我需要验证输入的日期 <input type="date">

使用Safari 4/5(在Mac OSX上),Javascript无法解析格式的日期YYYY-MM-DD,NaN而是返回而不是预期的纪元时间戳.

我正在使用以下技术在提交表单之前验证字段:

//value = '2010-06-21'
var stamp = Date.parse(value);
if (isNaN(stamp)) {
    //notify user
} else {
    value = new Date(stamp).format_mysql();
}
Run Code Online (Sandbox Code Playgroud)

format_mysql()原型函数在哪里将日期(正确)格式化为MySQL日期时间格式(YYYY-MM-DD).

-'s 替换为' /(YYYY/MM/DD)会产生"正确"的时间戳.

我应该注意,该字段应该接受任何日期格式,而不仅仅是YYYY-MM-DD,虽然我想,但我不能使用像Date.js这样的库

我该如何解决这个问题,还是有更好的方法来解析/验证日期?

javascript safari validation datetime

37
推荐指数
2
解决办法
4万
查看次数

版本控制最佳实践

前几天我刚刚转向版本控制,经过Subversion的糟糕体验后,我转向Mercurial,到目前为止我很满意.

虽然我理解并欣赏版本控制的想法,但我对它没有任何实际经验.

现在,我正在使用它来处理我正在研究的几个网站,并且想到了几个问题:

  • 我应该多久/多久一次?经过任何重大改变后,是否有效?我什么时候做完了?只有当它到达下一个稳定的迭代时?任何错误修正后?
  • 当我想要改变菜单的布局,然后合并回来时,我会分支吗?
  • 我应该分支吗?在分支,然后合并回来,克隆存储库并将其拉回来之间有什么区别(对于我,一个单独的开发人员)?

版本控制新手的任何其他建议?


到目前为止,每个人都给了我很好的建议,但非常注重团队.我想澄清一下:

目前,我只是在我做的一些网站上使用VC.不完全自由职业的工作,但出于VC的目的,我是唯一一个真正触及网站代码的人.

此外,由于我在网站上使用PHP,因此无法进行编译.

这会显着改变您的答案吗?

version-control mercurial

26
推荐指数
2
解决办法
2034
查看次数

将纪元时间转换为"实际"日期/时间

我想要做的是将纪元时间(自1970年1月1日午夜以来的秒数)转换为"实际"时间(m/d/yh:m:s)

到目前为止,我有以下算法,对我来说感觉有点难看:

void DateTime::splitTicks(time_t time) {
    seconds = time % 60;
    time /= 60;
    minutes = time % 60;
    time /= 60;
    hours = time % 24;
    time /= 24;

    year = DateTime::reduceDaysToYear(time);
    month = DateTime::reduceDaysToMonths(time,year);
    day = int(time);
}

int DateTime::reduceDaysToYear(time_t &days) {
    int year;
    for (year=1970;days>daysInYear(year);year++) {
        days -= daysInYear(year);
    }
    return year;
}

int DateTime::reduceDaysToMonths(time_t &days,int year) {
    int month;
    for (month=0;days>daysInMonth(month,year);month++)
        days -= daysInMonth(month,year);
    return month;
}
Run Code Online (Sandbox Code Playgroud)

你可以假设成员seconds,minutes,hours,month, …

c++ algorithm datetime epoch

23
推荐指数
3
解决办法
6万
查看次数

C++中的动态和静态库

在我学习C++的过程中,我遇到了动态和静态库.

我通常得到它们的要点:编译代码以包含在其他程序中.

但是,我想了解一些关于它们的事情:

  • 写它们是否与普通的C++程序不同,减去main()函数?
  • 编译后的程序如何成为一个库?它显然不是可执行文件,所以如何转换,将'test.cpp'称为'test.dll'?
  • 一旦我得到它的格式,我如何将它包含在另一个程序中?
  • 是否有一个标准的位置,所以无论编译器/链接器需要它们都可以轻松找到它们?
  • 动态库和静态库之间有什么区别(技术上和实际上)?
  • 我将如何使用我的代码的第三方库(我在看.dylib.a文件MySQL的C++连接器)

我发现的与图书馆有关的所有内容似乎都是针对那些已经知道如何使用它们的人.但是,我没有.(但是想!)

谢谢!

(我还应该注意到我使用的是Mac OS X,虽然我更喜欢保持IDE中立或面向命令行,但我使用的是QtCreator/Netbeans)

c++ libraries

22
推荐指数
2
解决办法
9803
查看次数