问题列表 - 第9210页

如何从jar文件中获取方法签名?

我有一个第三方jar文件,它只是部分API的javadocs.有没有办法对jar文件进行反向工程以获得类和方法的完整列表?

java jar reverse-engineering method-signature

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

获取调用事件的按钮名称的最佳方法是什么?

在下面的代码(灵感来自这个片段),我用一个单一的事件处理程序buttonClick来改变窗口的标题.目前,我需要评估事件的Id是否与按钮的Id相对应.如果我决定添加50个按钮而不是2个,则此方法可能会变得很麻烦.有一个更好的方法吗?

import wx

class MyFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, 'wxBitmapButton',
            pos=(300, 150), size=(300, 350))
        self.panel1 = wx.Panel(self, -1)

        self.button1 = wx.Button(self.panel1, id=-1,
            pos=(10, 20), size = (20,20))
        self.button1.Bind(wx.EVT_BUTTON, self.buttonClick)

        self.button2 = wx.Button(self.panel1, id=-1,
            pos=(40, 20), size = (20,20))
        self.button2.Bind(wx.EVT_BUTTON, self.buttonClick)

        self.Show(True)

    def buttonClick(self,event):
        if event.Id == self.button1.Id:
            self.SetTitle("Button 1 clicked")
        elif event.Id == self.button2.Id:
            self.SetTitle("Button 2 clicked")            

application = wx.PySimpleApp()
window = MyFrame()
application.MainLoop()
Run Code Online (Sandbox Code Playgroud)

python events user-interface wxpython event-handling

4
推荐指数
3
解决办法
9352
查看次数

SWT是否分发适用于任何支持的操作系统的JAR?

SWT项目目前维持对每个支持的操作系统一个分配.例如:

  • swt-3.4.2-win32-win32-x86.zip
  • swt-3.4.2-gtk-linux-x86.zip
  • swt-3.4.2-carbon-macosx.zip

是否有正确的Thing™可分发,无论应用程序运行在哪个操作系统上?

swt jar

4
推荐指数
1
解决办法
761
查看次数

Ruby on Rails:"等于"符号的含义是什么?

我一直在使用的一些开源有以下行作为函数声明:

def parse_query(query = nil,options = {},models = nil)

"等于"符号对声明有什么影响?它只是使参数可选吗?

ruby parameters ruby-on-rails equals

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

这是一个糟糕的设计吗?

我正在尝试行为驱动的开发,我发现自己在我写作时第二次猜测我的设计.这是我的第一个绿地项目,可能只是我缺乏经验.无论如何,这是我正在编写的类的简单规范.它是用BDD风格在NUnit中编写的,而不是使用专用的行为驱动框架.这是因为该项目的目标是.NET 2.0,所有的BDD框架似乎都采用了.NET 3.5.

[TestFixture]
public class WhenUserAddsAccount
{
    private DynamicMock _mockMainView;
    private IMainView _mainView;

    private DynamicMock _mockAccountService;
    private IAccountService _accountService;

    private DynamicMock _mockAccount;
    private IAccount _account;

    [SetUp]
    public void Setup()
    {
        _mockMainView = new DynamicMock(typeof(IMainView));
        _mainView = (IMainView) _mockMainView.MockInstance;

        _mockAccountService = new DynamicMock(typeof(IAccountService));
        _accountService = (IAccountService) _mockAccountService.MockInstance;

        _mockAccount = new DynamicMock(typeof(IAccount));
        _account = (IAccount)_mockAccount.MockInstance;
    }

    [Test]
    public void ShouldCreateNewAccount()
    {
        _mockAccountService.ExpectAndReturn("Create", _account);
        MainPresenter mainPresenter = new MainPresenter(_mainView, _accountService);
        mainPresenter.AddAccount();
        _mockAccountService.Verify();
    }
}
Run Code Online (Sandbox Code Playgroud)

MainPresenter使用的接口都没有任何实际的实现.AccountService将负责创建新帐户.可以将IAccount的多个实现定义为单独的插件.在运行时,如果有多个,则会提示用户选择要创建的帐户类型.否则AccountService将只创建一个帐户.

让我感到不安的一件事是,只需编写一个规范/测试就需要多少次模拟.这只是使用BDD的副作用还是我错误的方式?

[更新]

这是MainPresenter.AddAccount的当前实现

    public void AddAccount()
    { …
Run Code Online (Sandbox Code Playgroud)

c# bdd unit-testing

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

Java泛型 - 为什么允许"扩展T"而不是"实现T"?

我想知道Java中是否存在使用always" extends"而不是" implements"来定义类型参数边界的特殊原因.

例:

public interface C {}
public class A<B implements C>{} 
Run Code Online (Sandbox Code Playgroud)

被禁止但是

public class A<B extends C>{} 
Run Code Online (Sandbox Code Playgroud)

是正确的.这是什么原因?

java generics syntax design-choices

293
推荐指数
7
解决办法
15万
查看次数

无法创建新的实体数据模型

我正在尝试将新的ADO.Net实体数据模型添加到我正在处理的MVC项目中.

当我完成向导时,选择我的数据库和表(现在只是一个表)我收到一个错误""调用目标抛出了异常."它会抛出添加新项目对话框.

此时,在我的项目中创建了一个空数据模型.如果我然后选择"从数据库更新模型"并再次完成向导,我会收到类似的错误.

尝试从数据库更新时发生"System.Reflection.TargetInvocationException"类型的异常.异常消息是:'调用目标已抛出异常.'.

有任何想法吗?我也试过在空项目中这样做,但仍然没有骰子!

亚历克斯

asp.net asp.net-mvc

12
推荐指数
1
解决办法
1186
查看次数

Xcode:在每次直接修改源代码的构建之前运行脚本

我做了什么:

我有一个脚本

  1. 阅读一些配置文件以生成源代码片段
  2. 查找相关的Objective-C源文件和
  3. 用步骤1中生成的代码替换源代码的某些部分.

和一个Makefile,它有一个特殊的时间戳文件作为make目标,配置文件作为目标源:

SRC = $(shell find ../config -iname "*.txt")
STAMP = $(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME).stamp
$(STAMP): $(SRC)
    python inject.py
    touch $(STAMP)
Run Code Online (Sandbox Code Playgroud)

我在项目目标的构建阶段堆栈之上添加了这个Makefile作为"运行脚本构建阶段".

发生了什么:

在编译源代码之前运行了脚本构建阶段.

但是,由于脚本在执行期间修改了源代码,因此我需要构建两次以获取最新版本的构建产品.这是我想象中发生的事情:

  1. 第一次运行:Xcode收集依赖信息--->没有变化
  2. 第一次运行:Xcode运行"运行脚本构建阶段"--->源代码在Xcode的后面更改
  3. 第一次运行:Xcode完成构建,认为没有什么需要更新
  4. 第二次运行:Xcode收集依赖信息--->源已更改,需要重建!
  5. 第二轮:Xcode运行Run Script Build Phase"--->一切都是最新的
  6. 第二轮:Xcode继续编译

在阅读Build Phases上的Xcode文档后,我尝试添加一个源文件,这个源文件在每次运行脚本时都会更新,作为"Run Script Build Phases"的输出,但没有任何改变.由于配置文件的数量可能在我的项目中有所不同,我不想指定每个输入和输出文件.

题:

如何让Xcode知道在"运行脚本构建阶段"期间所做的源文件更改?

编辑:

  • 补充说我在其他构建阶段之前放置了脚本构建阶段

scripting xcode dependencies build

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

自动生成C++源和标头(并在更改时更新)

是否有一些工具(希望是emacs)可以更新和添加正确的函数定义和其他东西,以保持源(.cpp)和标题(.h)文件同步.

例如,如果我开始这样做:

file: aaa.h

Class AAA {
   int b;
public:
   void func();
};
Run Code Online (Sandbox Code Playgroud)

会自动创建和添加的内容:

file: aaa.cpp

void AAA:func() {

}
Run Code Online (Sandbox Code Playgroud)

任何变化都会出现在两者上?

我只是梦想太多了?

c++ emacs automation header

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

如何在Ruby On Rails中迭代活动记录对象?

这个问题很简单,但我已经遇到过几次这个问题了.

假设你做的事情如下:

cars = Vehicle.find_by_num_wheels(4)

cars.each do |c|
  puts "#{c.inspect}"
end
Run Code Online (Sandbox Code Playgroud)

如果汽车是一个阵列,这可以正常工作,但如果数据库中只有一辆汽车则会失败.显然我可以做一些像"if!cars.length.nil?"的事情.或者在调用.each之前,如果cars对象是一个数组,请检查其他方式,但每次都有点烦人.

是否有类似.each的东西来处理这个检查?或者是否有一种简单的方法可以将查询结果强制为数组而不管大小?

iteration activerecord ruby-on-rails

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