我有一个第三方jar文件,它只是部分API的javadocs.有没有办法对jar文件进行反向工程以获得类和方法的完整列表?
在下面的代码(灵感来自这个片段),我用一个单一的事件处理程序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) 在SWT项目目前维持对每个支持的操作系统一个分配.例如:
swt-3.4.2-win32-win32-x86.zipswt-3.4.2-gtk-linux-x86.zipswt-3.4.2-carbon-macosx.zip是否有正确的Thing™可分发,无论应用程序运行在哪个操作系统上?
我一直在使用的一些开源有以下行作为函数声明:
def parse_query(query = nil,options = {},models = nil)
"等于"符号对声明有什么影响?它只是使参数可选吗?
我正在尝试行为驱动的开发,我发现自己在我写作时第二次猜测我的设计.这是我的第一个绿地项目,可能只是我缺乏经验.无论如何,这是我正在编写的类的简单规范.它是用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) 我想知道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)
是正确的.这是什么原因?
我正在尝试将新的ADO.Net实体数据模型添加到我正在处理的MVC项目中.
当我完成向导时,选择我的数据库和表(现在只是一个表)我收到一个错误""调用目标抛出了异常."它会抛出添加新项目对话框.
此时,在我的项目中创建了一个空数据模型.如果我然后选择"从数据库更新模型"并再次完成向导,我会收到类似的错误.
尝试从数据库更新时发生"System.Reflection.TargetInvocationException"类型的异常.异常消息是:'调用目标已抛出异常.'.
有任何想法吗?我也试过在空项目中这样做,但仍然没有骰子!
亚历克斯
我有一个脚本
和一个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作为"运行脚本构建阶段".
在编译源代码之前运行了脚本构建阶段.
但是,由于脚本在执行期间修改了源代码,因此我需要构建两次以获取最新版本的构建产品.这是我想象中发生的事情:
在阅读Build Phases上的Xcode文档后,我尝试添加一个源文件,这个源文件在每次运行脚本时都会更新,作为"Run Script Build Phases"的输出,但没有任何改变.由于配置文件的数量可能在我的项目中有所不同,我不想指定每个输入和输出文件.
如何让Xcode知道在"运行脚本构建阶段"期间所做的源文件更改?
是否有一些工具(希望是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)
任何变化都会出现在两者上?
我只是梦想太多了?
这个问题很简单,但我已经遇到过几次这个问题了.
假设你做的事情如下:
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的东西来处理这个检查?或者是否有一种简单的方法可以将查询结果强制为数组而不管大小?
jar ×2
java ×2
activerecord ×1
asp.net ×1
asp.net-mvc ×1
automation ×1
bdd ×1
build ×1
c# ×1
c++ ×1
dependencies ×1
emacs ×1
equals ×1
events ×1
generics ×1
header ×1
iteration ×1
parameters ×1
python ×1
ruby ×1
scripting ×1
swt ×1
syntax ×1
unit-testing ×1
wxpython ×1
xcode ×1