假设我有以下可能无法修改的Java接口:
public interface MyInterface {
public void doSomething();
}
Run Code Online (Sandbox Code Playgroud)
现在实现它的类是这样的:
class MyImplementation implements MyInterface {
public void doSomething() {
try {
// read file
} catch (IOException e) {
// what to do?
}
}
}
Run Code Online (Sandbox Code Playgroud)
我无法从不读取文件中恢复.
一个子类RuntimeException可以明显帮助我,但我不确定这是否是正确的做法:问题是该异常将不会在类中记录,并且该类的用户可能会得到该异常解决这个问题.
我能做什么?
我们都同意:接口有问题.
我选择的解决方案
我最终决定编写一个MyVeryOwnInterface扩展MyInterface并添加作为错误方法签名的一部分MyRuntimeException:
public interface MyVeryOwnInterface extends MyInterface {
public void doSomething() throws MyRuntimeException;
}
class MyImplementation implements MyVeryOwnInterface {
public void doSomething() throws MyRuntimeException {
try {
// read file …Run Code Online (Sandbox Code Playgroud) 这很奇怪.我在Reflector中加载System.Windows.dll(C:\ Program Files(x86)\ Microsoft Silverlight\4.0.50401.0\System.Windows.dll)并搜索HtmlBrush但没有出现任何内容.任何人都知道为什么?
我有两个png图像文件,我希望我的Android应用程序以编程方式组合成一个png图像文件,我想知道是否可以这样做?如果是这样,我想做的就是将它们相互叠加以创建一个文件.
这背后的想法是我有一些png文件,有些是左边的图像的一部分,其余的是透明的,其他的图像在右边,其余的是透明的.并根据用户输入,它将两者结合起来制作一个文件.(我不能只是并排显示两个图像,它们需要是一个文件)
这有可能在android中以编程方式进行,怎么做?
我如何能证明对学生的可用性likely和unlikely编译器提示(__builtin_expect)?
你能编写一个示例代码,使用这些提示比较没有提示的代码会快几倍.
我正在尝试学习一些c#编码,并想知道函数指针的c ++概念是否包含在c#中.我看到有代表这样的事情.它们是相同的概念吗?或者他们在更基础的层面上有所不同?
我有一个正在运行的Python 2.6安装,只是安装了为Python 2.6构建的PyQt4(可从http://www.riverbankcomputing.co.uk/software/pyqt/download获得).当我尝试导入PyQt4.QtGui时,我收到以下错误:
ImportError: DLL load failed: The specified procedure could not be found.
Run Code Online (Sandbox Code Playgroud)
我在Windows 2k8 64位上,但我的Python安装是32位.
我有这样的HQL:
from Table1 t1 where t1.name not in (select t2.name from Table2 t2 order by t2.date limit 10)
Run Code Online (Sandbox Code Playgroud)
问题是它不懂limit关键字.有没有办法运行这样的查询而不将其分成两个子查询?
我想知道在java中编写#hashCode()方法的最佳实践是什么.很好的描述可以在这里找到.这样好吗?
我在A类中有两个包含其他类对象B和C的向量.我确切地知道这些向量应该保持多少元素.在A类构造函数的初始化列表中,我将这些向量初始化为它们的最大大小(常量).
如果我理解正确的话,我现在有一个B类对象的向量,它们已经使用它们的默认构造函数进行了初始化.对?当我编写这段代码时,我认为这是处理事情的唯一方法.但是,我已经学会了std::vector.reserve(),我想要实现不同的东西.
我想为这些向量分配内存以尽可能大,因为添加到它们是由用户输入控制的,所以我不想频繁的调整.但是,我每秒迭代这个向量很多次,而且我目前只处理我标记为"活动"的对象.必须在每次迭代时检查B/C类的布尔成员是愚蠢的.我不希望这些对象甚至在那里为我的迭代器看我何时运行这个列表.
是提前保留最大空间并使用push_back向向量添加新对象的解决方案吗?
我理解在Python中,字符串只是一个表达式,并且在将控制权返回给代码的调用者时,字符串本身就会被垃圾收集,但......
这甚至重要吗?我唯一关心的问题是,如果我使用像Django这样的大型框架,或者使用多个大型开源库,那么它们往往会被很好地记录下来,可能有多兆字节的文本.在这些情况下,文档字符串是否已加载到内存中以供沿途使用的代码,然后保存在那里,或者是否像普通字符串一样立即收集?