小编Ale*_*sky的帖子

在Java中捕获一般的异常?

我们在工作中使用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

java generics exception

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

Clojure的最佳单元测试框架?

Clojure最好的单元测试框架是什么?

我更喜欢更BDD风格的框架.

unit-testing clojure

31
推荐指数
3
解决办法
8044
查看次数

Clojure中的广义线程宏

注意:这不是关于并发性的.这是关于线程宏.

我知道->将对象放在第二个位置->>并将参数放在最后一个位置.

现在,我很好奇,就像#( ... % )函数的简写符号一样,是否有一个简短的线程表示法让我将参数放在任意位置?

目标是,不是让线程有一个固定的位置来运行...我可以编写任意形式,并在特殊位置插入%%,%%是插入线程的位置.

谢谢!

macros clojure

30
推荐指数
3
解决办法
2356
查看次数

斯卡拉:私人制定者的公共吸气者?

如何在Scala中创建一个具有公共getter但是setter是私有的字段?

编辑:太糟糕了没有像Groovy那样的单行方式.这些解决方案看起来都很笨重.

scala

29
推荐指数
2
解决办法
3627
查看次数

何时使用脚本语言?

何时应该使用脚本语言而不是像C++这样更详细的编译语言.C#还是Java?

为了使问题更有趣,让我们回答这样的问题:

你应该使用脚本语言... BLANK ...

当你需要使用脚本语言X.

当你需要B使用脚本语言Y.

当你需要C使用脚本语言Z.

scripting-language

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

使用JUnit比较ArrayLists是否相等的简单方法?

使用JUnit比较ArrayLists是否相等的简单方法是什么?我需要实现相等接口吗?或者是否有一个简单的JUnit方法,使它更容易?

java junit

25
推荐指数
2
解决办法
3万
查看次数

Haskell日期解析和格式化

我一直在使用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的方式是什么?

谢谢您的帮助.

formatting haskell date

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

作为数据容器,vector和list之间的主要区别是什么

假设我们需要一个数字列表,有两个定义:

(def vector1 [1 2 3])
(def list2 '(1 2 3))
Run Code Online (Sandbox Code Playgroud)

那么主要的区别是什么?

clojure

24
推荐指数
2
解决办法
7415
查看次数

什么类型的应用程序需要多线程?

什么是需要多线程或不需要的应用程序的具体示例,但是这样的方式要好得多?

答案是最好的,如果以每个帖子的一个申请的形式,那么最适用的将浮动到顶部.

multithreading

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

克隆列表<T>

我想要克隆一个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)

我非常肯定,我会得到一个填充了新的独特项目的列表,对吗?

.net c#

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