我们在工作中使用JUnit 3并且没有ExpectedException注释.我想在我们的代码中添加一个实用程序来包装它:
try {
someCode();
fail("some error message");
} catch (SomeSpecificExceptionType ex) {
}
Run Code Online (Sandbox Code Playgroud)
所以我尝试了这个:
public static class ExpectedExceptionUtility {
public static <T extends Exception> void checkForExpectedException(String message, ExpectedExceptionBlock<T> block) {
try {
block.exceptionThrowingCode();
fail(message);
} catch (T ex) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我认为Java不能在catch块中使用泛型异常类型.
我怎么能做这样的事情,解决Java限制?
有没有办法检查ex变量是否类型T?
注意:这不是关于并发性的.这是关于线程宏.
我知道->将对象放在第二个位置->>并将参数放在最后一个位置.
现在,我很好奇,就像#( ... % )函数的简写符号一样,是否有一个简短的线程表示法让我将参数放在任意位置?
目标是,不是让线程有一个固定的位置来运行...我可以编写任意形式,并在特殊位置插入%%,%%是插入线程的位置.
谢谢!
如何在Scala中创建一个具有公共getter但是setter是私有的字段?
编辑:太糟糕了没有像Groovy那样的单行方式.这些解决方案看起来都很笨重.
何时应该使用脚本语言而不是像C++这样更详细的编译语言.C#还是Java?
为了使问题更有趣,让我们回答这样的问题:
你应该使用脚本语言... BLANK ...
当你需要使用脚本语言X.
当你需要B使用脚本语言Y.
当你需要C使用脚本语言Z.
使用JUnit比较ArrayLists是否相等的简单方法是什么?我需要实现相等接口吗?或者是否有一个简单的JUnit方法,使它更容易?
我一直在使用Haskell的Date.Time模块来解析像12-4-1999或的日期1-31-1999.我试过了:
parseDay :: String -> Day
parseDay s = readTime defaultTimeLocale "%m%d%Y" s
Run Code Online (Sandbox Code Playgroud)
而且我认为我希望我的几个月和几天只有两位数而不是一两位数......
这样做的正确方法是什么?
另外,我想以这种格式打印出我的日子:12/4/1999Haskell的方式是什么?
谢谢您的帮助.
假设我们需要一个数字列表,有两个定义:
(def vector1 [1 2 3])
(def list2 '(1 2 3))
Run Code Online (Sandbox Code Playgroud)
那么主要的区别是什么?
什么是需要多线程或不需要的应用程序的具体示例,但是这样的方式要好得多?
答案是最好的,如果以每个帖子的一个申请的形式,那么最适用的将浮动到顶部.
我想要克隆一个List你只需要调用:
List<int> cloneList = new List<int>(originalList);
Run Code Online (Sandbox Code Playgroud)
但是我在我的代码中尝试了这一点,我似乎得到的效果暗示上面只是在做:
cloneList = originalList ...因为对cloneList的更改似乎正在影响originalList.
那么克隆List的方法是什么?
编辑:
我在考虑做这样的事情:
public static List<T> Clone<T>(this List<T> originalList) where T : ICloneable
{
return originalList.ConvertAll(x => (T) x.Clone());
}
Run Code Online (Sandbox Code Playgroud)
EDIT2:
我拿了Binoj Antony建议的深拷贝代码并创建了这个扩展方法:
public static T DeepCopy<T>(this T original) where T : class
{
using (MemoryStream memoryStream = new MemoryStream())
{
BinaryFormatter binaryFormatter = new BinaryFormatter();
binaryFormatter.Serialize(memoryStream, original);
memoryStream.Seek(0, SeekOrigin.Begin);
return (T)binaryFormatter.Deserialize(memoryStream);
}
}
Run Code Online (Sandbox Code Playgroud)
EDIT3:
现在,假设列表中的项目是结构.如果我打电话会怎么样?:
List<StructType> cloneList = new List<StructType>(originalList);
Run Code Online (Sandbox Code Playgroud)
我非常肯定,我会得到一个填充了新的独特项目的列表,对吗?