小编Yuv*_*dam的帖子

在Java中优雅地避免NullPointerException

考虑这一行:

if (object.getAttribute("someAttr").equals("true")) { // ....
Run Code Online (Sandbox Code Playgroud)

显然这条线是一个潜在的错误,属性可能是null,我们将得到一个NullPointerException.所以我们需要将它重构为以下两种选择之一:

第一种选择:

if ("true".equals(object.getAttribute("someAttr"))) { // ....
Run Code Online (Sandbox Code Playgroud)

第二种选择:

String attr = object.getAttribute("someAttr");
if (attr != null) {
    if (attr.equals("true")) { // ....
Run Code Online (Sandbox Code Playgroud)

第一个选项很难读,但更简洁,而第二个选项在意图上是明确的,但是很冗长.

在可读性方面,您更喜欢哪个选项?

java coding-style nullpointerexception code-readability

23
推荐指数
2
解决办法
6815
查看次数

JavaScript有内存堆吗?

换句话说,我有什么选择在JavaScript中分配内存?

我知道你可以在全局或在函数范围内分配内存.我可以动态分配内存吗?什么是new运营商究竟意味着什么?

编辑:这是一个具体的例子.你将如何实现从用户读取整数值 - n然后将n整数读入数组?

javascript

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

什么是第一 - 最后还是阻止?

考虑以下测试用例:

public class Main {

    static int a = 0;

    public static void main(String[] args) {
        try {
            test();
            System.out.println("---");
            test2();
        }
        catch(Exception e) {
            System.out.println(a + ": outer catch");
            a++;
        }
    }

    public static void test()
    {
        try {
            throw new Exception();
        }
        catch (Exception e) {
            System.out.println(a + ": inner catch");
            a++;
        }
        finally {
            System.out.println(a + ": finally");
            a++;
        }
    }

    public static void test2() throws Exception
    {
        try {
            throw new Exception();
        }
        finally {
            System.out.println(a …
Run Code Online (Sandbox Code Playgroud)

java

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

你的伐木理念是什么?

正如杰夫·阿特伍德问:"什么是你的日志哲学应该所有代码被散落?.logthis().logthat()来电或你在事后注入记录不知何故?"

logging

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

设计用于存储多人游戏的各种要求和统计数据的表格

原始问题:

你好,

我正在创建一个非常简单的爱好项目 - 基于浏览器的多人游戏.我坚持设计用于存储任务/技能要求信息的表格.

现在,我按照以下方式设计了表格:

  • 用户(有关用户的基本信息)
  • 统计(各种统计)
  • table user_stats(用stats连接每个用户)

另一个例子:

  • 怪物(关于npc敌人的基本信息)
  • table monster_stats(用统计数据连接怪物,使用上面相同的统计表)

那些是简单的案例.我必须承认,我在设计不同事物的要求时遇到困难,例如任务.示例任务A可能只有最低字符等级要求(并且易于实现) - 但另一个,任务B有许多其他要求(完成任务,获得技能,拥有特定项目等) - 什么是好方法设计用于存储此类信息的表格?

以类似的方式 - 什么是存储技能要求信息的有效方式?(特定角色等级,最低等级).

我将非常感谢有关创建数据库驱动游戏的任何帮助或信息.

编辑:

谢谢你的答案,但我想收到更多.由于我在设计一个相当复杂的数据库布局时遇到了一些问题,我正在为这个问题开始最大的赏金.

我想收到的链接与设计数据库,用于存储游戏数据的最佳实践与文章/代码片段/任何(这类信息的一个很好的例子是在availibe buildingbrowsergames.com).

我将不胜感激任何帮助.

database database-design

22
推荐指数
3
解决办法
7529
查看次数

您曾经使用过的最佳API /框架/平台是什么?

大多数编程都是在现有的框架或平台上完成的,并使用各种AP​​I使您的编程工作更加方便.

它可以是一套设计精美的API,也可以是一个很好的框架,你可以很快地完成很酷的事情.

所有答案都应该给出具体的例子,说明为什么这个框架如此棒,或者你用它做的很酷的东西的例子.

现有的框架真正激发了你做一些很棒的工作吗?


我知道这是主观的,但我认为我们可以从这个问题中得到一些很酷的想法.请在"关闭"链接上轻松:)同时 - 提前通信.

api frameworks

21
推荐指数
12
解决办法
5207
查看次数

从JSF请求中检索会话ID值

如何在JSF托管bean中检索会话ID值?

java session jsf

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

如何在Django查询中动态提供查找字段名称?

我想在Django中的Model的几个字段中查找某个字符串.理想情况下,它会类似于:

keyword = 'keyword'
fields = ['foo', 'bar', 'baz']
results = []
for field in fields:
    lookup = "%s__contains"
    results.append(Item.objects.filter(lookup=keyword))
Run Code Online (Sandbox Code Playgroud)

当然这不起作用,因为"查找"无法解析为字段.有没有其他方法可以做到这一点?

django django-queryset

19
推荐指数
3
解决办法
7545
查看次数

选择SQL/NoSQL应该考虑什么?

目标应用程序是一个中等规模的网站,每小时可以支持数百到数千个用户,可以选择扩展到每小时.数据模型相当简单,缓存潜力相当高(读取与编辑操作的比例约为10:1).

在选择基于SQL的关系数据存储区与NoSQL选项(如HBase和Cassandra)之间应该考虑什么?

architecture database-design scalability nosql

19
推荐指数
1
解决办法
2383
查看次数

谁触摸我的git假设 - 没有改变?

我的仓库中有一个特定的文件,我已将假设未设置的位设置为:

git update-index --assume-unchanged someFile.txt
Run Code Online (Sandbox Code Playgroud)

偶尔,在对repo进行一些工作后,该位未设置,文件自动assume-unchanged不再存在.

谁在接触它?在明确告诉git之前,我怎样才能使这个永久化:

git update-index --no-assume-unchanged someFile.txt
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?


编辑:我在本地更改的配置文件上使用假定未更改的位,并且永远不应该提交,更不用说上推了.我不希望看到它们git status,也不想在其他任何地方看到它们,除非我明确告诉git我想编辑并提交其中一个.


编辑:好的,我想我设法重现了这个问题.

我从一个不同的仓库(没有它--assume-unchanged)提交文件,拉上我的仓库,果然,该位被重置.

所以出现两个问题:

  1. 是否可以在中央权威仓库上设置此位,以便它传播到所有仓库?
  2. 即使在远程更改之后,是否有可能使这一点变得粘稠?

git git-index

19
推荐指数
1
解决办法
3341
查看次数