小编mon*_*res的帖子

在泛型类型上调用方法?

为什么以下在Delphi(XE)中生成错误?

unit UTest;

interface


type

TTest = class
  public
  procedure Foo<T>(A: T);
end;

implementation

{ TTest }

procedure TTest.Foo<T>(A: T);
begin
  A.Add('hej');
end;

end.
Run Code Online (Sandbox Code Playgroud)

我认为Delphi中的泛型类型只是简单地插入到泛型函数中,因此如果与没有Add(string)方法的类型一起使用它只会出错.

delphi generics delphi-xe

7
推荐指数
1
解决办法
900
查看次数

在Android上使用PowerMock验证错误

我正在尝试使用PowerMock来模拟用于测试我们的Android应用程序(例如BluetoothSocket)的一些类.

我已经在PowerMock的谷歌代码页面上下载了所有依赖项的zip文件,并将它们添加到我的Android测试项目(包括构建路径).

但是当我尝试使用PowerMock时:

@RunWith(PowerMockRunner.class )
@PrepareForTest( NetworkUtil.class )
public class TestSendAck extends TestCase{

    @Test
    public void testGenerateURL() {
         PowerMock.mockStatic( NetworkUtil.class );

         EasyMock.expect( NetworkUtil.getLocalHostname() ).andReturn( "triumph" );

         PowerMock.replayAll();
         PowerMock.verifyAll();
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到以下堆栈跟踪:

java.lang.ExceptionInInitializerError
at org.easymock.internal.ClassProxyFactory.createEnhancer(ClassProxyFactory.java:249)
at org.easymock.internal.ClassProxyFactory.createProxy(ClassProxyFactory.java:159)
at org.easymock.internal.MocksControl.createMock(MocksControl.java:59)
at org.powermock.api.easymock.PowerMock.doCreateMock(PowerMock.java:2212)
at org.powermock.api.easymock.PowerMock.doMock(PowerMock.java:2163)
at org.powermock.api.easymock.PowerMock.mockStatic(PowerMock.java:287)
at se.metrima.mafield.test.TestSendAck.testGenerateURL(TestSendAck.java:19)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1448)
Caused by: java.lang.VerifyError: net.sf.cglib.core.ReflectUtils
at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:166)
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:144)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:116)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
... 19 more …
Run Code Online (Sandbox Code Playgroud)

java junit android unit-testing powermock

6
推荐指数
1
解决办法
911
查看次数

Flask-login和LDAP

我正在开发一个带有flask框架作为后端的webapp,我需要提供身份验证.

由于这是我们在本地域上使用的内部应用程序,因此我选择使用其现有的域凭据对用户进行身份验证.

我使用的方法是win32security.LogonUserpywin32成功登录时返回句柄.

我试图了解flask-login如何工作,但@login_manager.user_loader回调让我感到困惑.

它说我应该提供一个可用于重新加载用户的id,但是我没有数据库或持久存储来提供这种映射,因为我只是在检查用户是否通过身份验证时感兴趣.

我的User类看起来像这样:

class User(flask_login.UserMixin):
    def __init__(self,username):
        self.username = username
        self.id = ??? 
Run Code Online (Sandbox Code Playgroud)

使用什么id,这个id如何映射回这个实例?

python flask flask-login

6
推荐指数
2
解决办法
9210
查看次数

比较数学表达式

所以这是我的情况:我有两个包含变量(x,y,z等)的数学表达式.我已经使用shunting yard算法将它们编译为postfix ,现在我需要一种方法来测试它们是否在数学上相等.

例子:

x+5==5+x
x*2==x+x
4/(x/2)==8/x
Run Code Online (Sandbox Code Playgroud)

我最初的想法是抛出几千个不同的随机输入,看看评估结果是否相同.

我用这种方法预见的问题:精度问题,NaN情况和可能的溢出.

所有计算都使用Java的double类型完成.

有任何想法吗?:)

编辑:因为这是一个休闲游戏,解决方案不需要是完美的,只有足够好!

java algorithm math floating-point parsing

6
推荐指数
2
解决办法
1230
查看次数

检测Microsoft Surface上的相机旋转?

有没有可靠的方法来确定相机是否在Microsoft Surface上旋转?

基本上,我想知道设备中是否内置了特定的摄像头(因为它随后会随设备一起旋转),有没有办法查询?

我的问题是,当用户旋转设备时,我的相机视图被翻转,但我无法假设我应该只旋转读取帧,因为活动相机可能是外部USB相机.

我正在使用Media Foundation API阅读相机.

windows camera ms-media-foundation surface-pro

6
推荐指数
1
解决办法
489
查看次数

如何在功能区设计器中更改组的大小?

我正在Visual Studio 2010中设计一个功能区,我遇到了一个问题,我真的没有.

正如标题所说,如何更改组的大小?没有可视方式来更改默认大小,而是在使用时似乎自动调整大小.

我的主要问题是我想将标记为"test"的按钮放在编辑框的右侧,但它们会一直保持在彼此之上.

谢谢!

.net c# ribbon ms-office visual-studio-2010

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

最优雅的解决方案来链接java中的异步调用?

我目前正在开发Android应用程序的表示层.

我正在使用的api看起来像这样:

public interface errorInterface{
    public void onError(String reason);
}

public interface if1 extends errorInterface{
    public void dataReceived1(Data data);
}
public interface if2 extends errorInterface{
    public void dataReceived2(Data data);
}   

public void fetchData1(if1 receiver) {}
public void fetchData2(if2 receiver) {}
Run Code Online (Sandbox Code Playgroud)

那是; 获取数据,您提供的接收器将在未来的某个时间接收操作的结果.

当你需要一次只调用一个方法时,这非常有效,但现在我已经达到了需要一次调用10多个这样的方法的时候,他们需要一次执行一个.

如何以灵活优雅的方式解决这个问题?

谢谢!

java design-patterns asynchronous

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

将部分活动模式作为参数传递?

我正在通过使用活动模式编写递归下降解析器来学习F#.

由于我的所有规则或部分活动模式都需要以不同的方式组合它们,但我对将活动模式作为参数传递的语法感到非常沮丧.

以下示例显示了我遇到的问题:

// Combines two patterns by chaining them.
let (|Chain|_|) (|Pattern1|_|) (* Should I use pipes here? *) (|Pattern2|_|) data =
    match data with
    |Pattern1 result ->
        match result with
        |Pattern2 result2 -> Some result2
        |_ -> None
    |_ -> None 

// Stupid test patterns
let (|IfBiggerThan10ThenDouble|_|) value = if value > 10 then Some (value*2) else None
let (|IfLessThan100ThenDouble|_ |) value = if value < 100 then Some (value*2) else None

match 20 with
// Do I …
Run Code Online (Sandbox Code Playgroud)

f# active-pattern

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

使用JSONProvider重用类型定义?

我正在使用FSharp-Data中的JSONProvider自动为我正在使用服务的示例响应消费的Web服务创建类型.

但是,当涉及到在服务中重用的类型时,我有点困惑,例如,有一个api方法返回X类型的单个项,而另一个返回X列表,依此类推.我真的必须为此生成多个定义,并不意味着我会为同一个东西重复类型吗?

所以,我想我真正想问的是,有没有办法从JSON样本生成的类型中创建复合类型?

f# json type-providers f#-data

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

关于这个内部类成员访问,clang或gcc是否正确?

下面的代码编译并在clang上工作,但失败并出现"错误:在gcc上无效使用非静态数据成员'Outer :: a'":

#include <functional>
#include <vector>
#include <assert.h>
#include <iostream>
#include <memory>

class Outer
{
public:
    bool a = false;

    virtual void f() = 0;

    template <typename T>
    class Inner : public T
    {
    public:
        virtual void f() override
        {
            a = true; // Note: accessed through inheritance, not through outer scope
        }
    };
};

struct Foo : Outer { };

int main()
{
    Outer::Inner<Foo> f;
    f.f();
}
Run Code Online (Sandbox Code Playgroud)

在内部类中添加"this-> a"使其适用于两个编译器,但我想知道正确的行为是什么以及标准对此有何看法.

有趣的是,上面的代码在VS2017的工作中作为更大的代码库的一部分工作,但是当我在家中与VS2017隔离时,它失败并出现与GCC相同的错误.

你可以尝试在这里编译它:

c++ gcc clang language-lawyer

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