小编Vol*_*ort的帖子

为什么arc4random()在将其存储在变量中时表现不同?

    int chance = -5;
    int rand = arc4random() % 100;   // Number from 0 to 99
    if (rand <= chance) {            // This will never happen
        NSLog(@"This is... NOT POSSIBLE");
    }
Run Code Online (Sandbox Code Playgroud)

实际上,这种情况从未发生过.但

    int chance = -5;
    if (arc4random() % 100 <= chance) {
        NSLog(@"This is... NOT POSSIBLE");
    }
Run Code Online (Sandbox Code Playgroud)

这里,我将随机数表达式直接放在条件中,而不是将其存储在变量中.并且条件得以实现(有时).

这是为什么?我该如何调试此行为?

objective-c ios

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

抽象类返回私有嵌套类的实例

我想要一个抽象类A.

然后我想要一个B只能被实例化的类A.没有其他人可以访问B- 只A.

然后我想要A一个返回实例的方法B.

我的尝试:

public abstract class A {

    public static B getInstanceOfB() {
        return new B();
    }

    private class B {

    }

}
Run Code Online (Sandbox Code Playgroud)

这当然不起作用.我怎样才能做到这一点?

java

3
推荐指数
1
解决办法
93
查看次数

为什么这个线程会影响主线程?

我肯定错过了什么:

public class Test {
    public static void main(String[] args) {
        (new Thread(new Action())).run();
        System.out.println("Blah");
    }
}

class Action implements Runnable {
    public void run() {
        while (true) {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个应该运行循环的线程.

在我的主线程中,我打印"Blah".

但是,它从未打印过.为什么不?如果我创建了一个单独的线程,它不应该影响我的主执行线程,对吧?

这台机器有四个核心.

java multithreading

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

从两个源继承方法的类

这很难解释,但显示一段Ruby代码很简单:

有两个实现方法的模块:

module Foo
    def one
        print "ONE!"
    end
end

module Bar
    def two
        print "TWO!"
    end
end
Run Code Online (Sandbox Code Playgroud)

有一个包含它们的类:

class Test
    include Foo
    include Bar
end
Run Code Online (Sandbox Code Playgroud)

现在你的班级Test可以调用这两种方法.


据我所知,Java中没有这样的东西.关闭的概念是:

多重继承

这不受Java支持.

接口

他们是方法合同 - 没有实施.你的类Test需要实现方法本身,这就是我想要避免的.只是为了不写两次相同的代码(我有其他几个类,其中一些也可能想要实现这些方法).

抽象类

我仍然需要同时从两个类继承.


那么推荐的解决方案是什么?

java

3
推荐指数
1
解决办法
92
查看次数

如何运行新进程,并在Java中关闭当前程序?

public class App {
    public static void main(String[] args) {
       Process p = Runtime.getRuntime().exec("java -jar someOtherProgram.jar");
    }
}
Run Code Online (Sandbox Code Playgroud)

这有效地运行了我的其他程序.但是,该程序(App)没有关闭.它仍然在运行(我可以告诉它,因为它不会让我在Eclipse中杀死它).关闭此程序的唯一方法是杀死对应的进程someOtherProgram.jar.

我想要的是我的程序App运行另一个Java程序.然后杀了自己.

java

3
推荐指数
1
解决办法
1289
查看次数

PVR纹理消耗更少的RAM吗?

据我所知,用texturetool制作的PVR纹理只是压缩图像.因此,差异在于文件大小.

坦率地说,文件大小对我不感兴趣.我想知道的是,PVR纹理能否比普通的.PNG纹理消耗更少的RAM?或者这完全取决于纹理格式(如RGBA8888等)?

关键问题是:

给定X.pngX.pvr,如果我用纹理格式显示两者,那么RGBA8888一个消耗的RAM会比另一个少吗?

opengl-es cocos2d-iphone ios

3
推荐指数
1
解决办法
563
查看次数

将一对放在LinkedHashMap中的特定位置

我想要一个HashMap按照我添加它们的方式订购钥匙的地方.

所以我正在使用LinkedHashMap.它具有可预测的迭代顺序.

如果使用put,插入的键将位于地图键集的末尾.

是否可以使用put,将键/对对插入特定位置?例如,我想put索引一些东西2,有效地使这对在迭代时成为第三个条目.

java collections

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

使用Unity的SimpleJSON检索不带引号的字符串

我正在使用http://wiki.unity3d.com/index.php/SimpleJSON中的SimpleJSON脚本

JSONNode root = JSON.Parse ("{ \"Name\" : \"Joe\"}");
Debug.Log (root ["Name"].ToString().Length);
Run Code Online (Sandbox Code Playgroud)

这返回5而不是3.这是因为root ["Name"]返回一个字面上的字符串"Joe"(包括引号,所以这是5个字符).

但这并不是我想要的 - 我在那里放置了引号,因为它是解析器工作的唯一方式.

当然我可以通过取出一个子串来手动删除引号,但我觉得这不是它应该如何进行.所以我的问题是:如何Joe使用此脚本检索没有引号的字符串?

c# json unity-game-engine

3
推荐指数
1
解决办法
2641
查看次数

关闭可能引发异常的资源

  • Connection从池中获取(这可能会引发异常)
  • 创建一个Statement连接(也可能抛出异常)
  • 使用该语句执行SQL查询并将其存储在ResultSet(也可以抛出)中
  • 用查询结果做一些事情
  • 关闭ResultSet(例外!)
  • 关闭Statement(例外!)
  • 关闭Connection(例外!)

看看这段代码:

    Connection  conn = null;
    Statement   st   = null;
    ResultSet   set  = null;
    try {
        conn    = Database.getConnection();
        st      = conn.createStatement();
        set     = st.executeQuery("SELECT * FROM THING");

        // <-- Do stuff
    } catch (Exception e) {

    } finally {
        // Close set if possible
        if (set != null) {
            try {
                set.close();
            } catch (Exception e) {

            }
        }

        // Close statement …
Run Code Online (Sandbox Code Playgroud)

java exception

3
推荐指数
1
解决办法
80
查看次数

当我将变量设置为新对象时,旧值是否会死亡?

假设我有一个变量,它是一个List(Of T)有100个元素的变量,它们是一个类的实例....

如果我将这个变量设置为List(Of T)另一个100个实例的新变量,旧变量完全消失了,对吧?他们死.绝对是过去的事,对吧?

.net vb.net garbage-collection scope

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