小编Arh*_*ham的帖子

如果在任何模块中存在模拟实例,则在创建RoboGuice注入器期间进程崩溃

我在单元测试中使用RoboGuice和AndroidMock框架时遇到问题.我已经创建了一个简单的项目来显示我的问题.在这里,我创建一个模拟实例并在RoboGuice中注册它.但是该过程在"setUp()"和"test01()"方法之间崩溃.正如我猜的那样,实际上当创建Injector时进程崩溃,如果任何模块内部有一个模拟实例.

如果我用实现接口的类的实例替换模拟的实例,那么一切正常.

有人知道如何解决这个问题吗?

这是我的测试代码:

public class testInjectMock extends RoboUnitTestCase<MyApplication> {
    protected void setUp() throws Exception {
        InterfaceToMock instance = AndroidMock.createNiceMock(InterfaceToMock.class);           AndroidMock.expect(instance.SimpleMethod()).andStubReturn("Hello!");            
        MyModule myMockModule = new MyModule();
        myMockModule.setMockedInstance(instance);//Comment this string to get into the test01() method          
        MyApplication.setMyModule(myMockModule);
        super.setUp();
    }
    public void test01() {
        //It never comes here
    }
}
Run Code Online (Sandbox Code Playgroud)

模块源代码:

public class MyModule extends AbstractAndroidModule {
        protected InterfaceToMock mockedInstance;
        public void setMockedInstance(InterfaceToMock mockedInstance) {
            this.mockedInstance = mockedInstance;
        }
        @Override
        protected void configure() {
            if(mockedInstance != null)
                bind(InterfaceToMock.class).toInstance(mockedInstance);
        }
    }
Run Code Online (Sandbox Code Playgroud)

logcat输出:

05-23 …
Run Code Online (Sandbox Code Playgroud)

java eclipse android roboguice

85
推荐指数
1
解决办法
2367
查看次数

为什么cvFindContours()方法在javacv中没有正确检测轮廓?

我在StackOverflow中经历了很多问题,能够开发小程序来正确检测正方形和矩形.这是我的示例代码

public static CvSeq findSquares(final IplImage src, CvMemStorage storage) {
    CvSeq squares = new CvContour();
    squares = cvCreateSeq(0, sizeof(CvContour.class), sizeof(CvSeq.class), storage);
    IplImage pyr = null, timg = null, gray = null, tgray;
    timg = cvCloneImage(src);
    CvSize sz = cvSize(src.width(), src.height());
    tgray = cvCreateImage(sz, src.depth(), 1);
    gray = cvCreateImage(sz, src.depth(), 1);
    // cvCvtColor(gray, src, 1);
    pyr = cvCreateImage(cvSize(sz.width() / 2, sz.height() / 2), src.depth(), src.nChannels());
    // down-scale and upscale the image to filter out the noise
    // cvPyrDown(timg, pyr, CV_GAUSSIAN_5x5);
    // …
Run Code Online (Sandbox Code Playgroud)

java opencv javacv

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

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

如何在 Java 中使用令牌和公钥验证 JWT 签名

我有一个字符串形式的令牌,我下载了公共证书并从中创建了一个公钥,如下所示。

但我不确定如何使用这么多信息进行验证。

我找到了适用于 C# 和 .NET 的解决方案,但没有找到适用于 Java 的解决方案。请注意,我没有 jks 文件或私钥。

    FileInputStream fin = new FileInputStream("d://public.crt");
    CertificateFactory f = CertificateFactory.getInstance("X.509");
    X509Certificate certificate = (X509Certificate)f.generateCertificate(fin);
    PublicKey pk = certificate.getPublicKey();
Run Code Online (Sandbox Code Playgroud)

java jwt

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

不继承Object类的类

是否有任何类不继承Object作为SuperClass或者可能已经过时/弃用?

java object

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

通过Groovy在Java中进行XML解析

我正在尝试使用Groovy和Java的ScriptEngine API来解析XML.下面的代码正是如此,但我想知道是否有更好的方法来做同样的事情.还有与此相关的性能影响吗?

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
/*
<books>
    <book id="1">
        <name>"Catcher In the Rye"</name>
        <author>J.D. Salinger</author>
    </book>
    <book id="2">
      <name>"KiteRunner"</name>
      <author>Khaled Hosseini</author>
    </book>
</books>
*/

public class XMLParsing{
  public static void main(String[] args) {
    Map<String, ArrayList<String>> resultMap 
                                     = new HashMap<String, ArrayList<String>>();
    resultMap = getBookDetails("c:\\temp\\book.xml");
    System.out.println(resultMap);
  }


  public static Map<String ArrayList<String>> getBookDetails(String scriptXml) {
    Map<String, ArrayList<String>> resultMap = 
                                       new HashMap<String, ArrayList<String>>();
    ScriptEngineManager factory = new ScriptEngineManager();
    ScriptEngine engine = factory.getEngineByName("groovy");
    String …
Run Code Online (Sandbox Code Playgroud)

java xml groovy

5
推荐指数
1
解决办法
2162
查看次数

IdentityHashMap是否会引发冲突?

由于每的JavadocIdentityHashMap,它说

此类Map使用哈希表实现接口,在比较键(和值)时使用引用相等性代替对象相等性.换句话说,在a中IdentityHashMap,当且仅当如此时,认为两个键k1和k2相等(k1==k2).(在正常Map 实现中(例如HashMap),当且仅当两个键k1和k2被认为是相等的时(k1==null ? k2==null : k1.equals(k2)).)

据我所知,指向不同内存位置的两个不同对象仍然可以具有相同的哈希码,因此object1.equals(object2)可以返回true.但指向不同的内存位置的两个不同的对象永远不能返回trueobject1 == object2.

问题1 - 当IdentityHashMap严格依赖参考平等时,这是否意味着永远不会发生碰撞?

问题2 - 调试以下代码显示了6个桶,其中key和value都存储在不同的存储桶中.但事实并非如此HashMap,其中密钥和值存储在同一个存储桶中.

因为它的名字中有一个'hash'字样,所以它必须对键进行散列,那么为什么它分别存储键和值以及它如何检索给定键的值?

String A = "abc";
String B = "def";
String C = new String("abc");
Map<String, String> map1 = new IdentityHashMap<String, String>();
map1.put(A, "123");
map1.put(B, "345");
map1.put(C, "567");
Run Code Online (Sandbox Code Playgroud)

java data-structures

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

用于不同对象的for-each循环

我创建了一个包含所有内容的pacman游戏,但问题是幽灵及其动画需要大量代码.

例:

每个幽灵需要3个if语句,此刻每个幽灵有20行代码,如果我在游戏中有3个鬼,那就是3 x 20 = 60行无用编码.

用我的PHP经验,我会说..使用foreach循环或类似的东西..但我应该如何在Java中这样做?有人可以举个例子吗?我现在这样做的方式发表如下:

创造幽灵物体;

DrawPacMan ghost1 = new DrawPacMan();
DrawPacMan ghost2 = new DrawPacMan();
Run Code Online (Sandbox Code Playgroud)

这幅画如下:

int g1x = 0;
boolean g1r = true;
public void paintComponent(Graphics g) {
    super.paintComponent(g);
    // pacman movement
    diameter = 75;   
    pacman.drawPacMan(g, getHorPlaats(), getVerPlaats(), diameter, getView(), Color.yellow);
    // ghosts movement
    if(g1r == true) {
        g1x += ghostSpeed;          
    }       
    if(g1r == false) {          
        g1x -= ghostSpeed;
    }
    if(g1x == 500 || g1x == 0) {
        g1r = !g1r;
    }
    System.out.println(g1r);
    ghost1.drawGhost(g, g1x, …
Run Code Online (Sandbox Code Playgroud)

java foreach

0
推荐指数
1
解决办法
278
查看次数