小编Kev*_*vin的帖子

JUnit&Ant:如何在屏幕上显示详细的错误消息?

我建立了一个Ant项目,其中包括使用JUnit的单元测试.

测试目标如下:

<target name="test">
    <mkdir dir="target/test/reports"/>
    <junit printsummary="yes" haltonfailure="yes">
        <classpath>
            <pathelement location="${test.classes.dir}"/>
            <pathelement location="${test.junit.jar}" />
            <pathelement path="${classes.dir}"/>
            <pathelement path="${java.class.path}"/>
        </classpath>
        <formatter type="plain"/>

        <batchtest fork="yes" todir="${test.reports.dir}">
            <fileset dir="${test.src.dir}">
                <include name="**/*Test*.java"/>
            </fileset>
        </batchtest>
    </junit>
</target>
Run Code Online (Sandbox Code Playgroud)

当我运行此测试时,它只在屏幕上显示测试的摘要,如:

Buildfile: F:\test\build.xml

test:
    [junit] Running com.mycompany.myproject.myTest
    [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.013 sec
    [junit] Running com.mycompany.myproject.myTest1
    [junit] Tests run: 3, Failures: 1, Errors: 0, Time elapsed: 0.018 sec

BUILD FAILED
F:\test\build.xml:30: Test com.mycompany.myproject.myTest1 failed

Total time: 1 second
Run Code Online (Sandbox Code Playgroud)

无论如何,我可以告诉JUnit或Ant在屏幕上显示详细结果吗?

另外,如果我想在单元测试中写一些东西到屏幕上,我该怎么办呢?我试图在测试中插入System.out.println()但它不会在屏幕上显示任何内容.

非常感谢.

java ant junit

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

如何在 Guava Optional 中保存空值

我是番石榴图书馆的新手。

我试图在我的方法参数中使用 Optional 。我发现的一个问题是我不可能将空值传递给 Optional。

我认为引入Optional的目的是为了区分

  1. 没有价值的东西
  2. 具有空值的东西

例如,Optional.absent() 表示该值不存在。而 null 是一个存在的值。

有了这个逻辑,我假设 Optional 必须有某种方式允许我们在其中保存空值。但是,我找不到办法做到这一点。

我的方法定义为:

void myMethod(Optional<String> arguments) {
    ....
}
Run Code Online (Sandbox Code Playgroud)

如果我使用

myMethod(Optional.of(null));
Run Code Online (Sandbox Code Playgroud)

它会给我运行时错误说值不能为空。

我怎么可能在 Optional 中传递 null ?

java guava

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

Java线程在等待期间无法获取锁是什么状态

Java 线程可以由以下任一方式持有:

  1. 无法获取锁。
  2. 由 wait() 方法持有。

上述两种场景在Java线程状态方面有什么区别呢?

考虑下面的简单代码:

   synchronized(object) {
       object.wait();
       System.out.println("Completed.");
   }
Run Code Online (Sandbox Code Playgroud)

如果两个线程(比如 ThreadA 和 ThreadB)都被 wait() 方法持有。例如,当另一个线程调用notifyAll()时,ThreadA将从等待中恢复并获得对象上的锁并继续。ThreadB 也会复活,但无法获取对象的锁,并且会一直保持到 ThreadA 退出同步块为止。然后ThreadB获得锁并继续。

结果将打印两个“Completed”。

在这个例子中,肯定有一个时刻,ThreadB从“被wait()持有”变成“因为无法获得对象锁而被持有”。

我想知道它在 Java 内部是如何工作的。请帮忙。

java concurrency multithreading

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

WPF:如何在 ViewModel 中调用自定义 UserControl 的功能

我在独立程序集中使用 WPF 定义了一个自定义控件。在另一个项目中,我只是简单地引用它并在 XAML 中使用它,如下所示:

<my:CustomUserControl Name="myControl" IsEnabled="{Binding CanTheUserInputTrade}"/>
Run Code Online (Sandbox Code Playgroud)

CustomUserControl 类有一个名为“Reset”的成员函数。

我曾经使用以下方法在 View.xaml.cs 文件中调用此函数:

myControl.Reset()
Run Code Online (Sandbox Code Playgroud)

但是,出于正当理由,我必须将调用此函数的逻辑移到 ViewModel 中。据我所知,在 ViewModel 中引用视图并不是一个好习惯。因此,我将无法从 ViewModel 访问“myControl”引用。

我的问题是:如何在 ViewModel 中调用 Reset 函数。

这是一个常见的用例,我相信有一种方法可以做到这一点。有人可以指出我正确的方向。

非常感谢。

wpf controls viewmodel

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

Oracle SQL触发器用于自动设置列值

我正在写一个Oracle触发器.此触发器应自动将列"productId"的值设置为刚刚插入的行的oid.

我写的触发器是:

create or replace trigger MyProduct_id_trg 
after insert on MyProduct
begin 
   update MyProduct set productId = inserted.oid where oid = inserted.oid;
end; 
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.

有人可以帮我弄这个吗?

问候.

sql oracle triggers

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

SLF4J版本不匹配和重复绑定

我有一个使用以下maven依赖项的项目:

<dependency>
                <groupId>com.dropbox</groupId>
                <artifactId>client2</artifactId>
                <version>1.3</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.8.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>4.0.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>4.0.3</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpmime</artifactId>
                <version>4.0.3</version>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.1.1</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.3</version>
            </dependency>
            <dependency>
                <groupId>org.json</groupId>
                <artifactId>simple</artifactId>
                <version>1.1</version>
            </dependency>
            <dependency>
                <groupId>com.google.inject</groupId>
                <artifactId>guice</artifactId>
                <version>3.0</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-all</artifactId>
                <version>1.9.0</version>
            </dependency>
            <dependency>
                <groupId>com.believer</groupId>
                <artifactId>box4j</artifactId>
                <version>1.2</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-client</artifactId>
                <version>1.12</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.surefire</groupId>
                <artifactId>surefire</artifactId>
                <version>2.12</version>
            </dependency>
        </dependencies>
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它会给我警告抱怨:

SLF4J: The requested version 1.5.10 by your …
Run Code Online (Sandbox Code Playgroud)

java maven

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

Gson:序列化瞬态场?

无论如何序列化一个类的瞬态字段?默认情况下不支持提到它的文档,但可能有办法打开它?

非常感谢

java gson

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

类不包含用于自动装配的匹配构造函数

我有两节课

public abstract class AbstractDAO<T> {
    private final MyExecutor<T> myExecutor;
    private final Class<T> clazz;

    public AbstractDAO(MyExecutor<T> myExecutor, Class<T> clazz) {
        this.myExecutor = myExecutor;
        this.clazz = clazz;
    }
}
Run Code Online (Sandbox Code Playgroud)

@Component
public class MyDAOImpl extends AbstractDAO<Manager> {
    private final SessionManager sessionManager;
    private final MyExecutor<Manager> myExecutor;

    @Autowired
    public MyDAOImpl(SessionManager sessionManager, MyExecutor<Manager> myExecutor) {
        super(myExecutor, Manager.class);

        this.sessionManager = sessionManager;
        this.myExecutor= myExecutor;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在抽象类的定义中得到一个错误:“类不包含用于自动装配的匹配构造函数”。

我所做的只是向 AbstractDAO 的构造函数添加了一个额外的构造函数参数,它是一个类。我需要这个,因为我没有找到一种方法可以在运行时从 T 中检测到这一点(堆栈流搜索说没有)。

我怎样才能解决这个问题?如何传递只能在实现类中确定的类信息?

非常感谢

java spring dependency-injection

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

正则表达式:如何匹配两个字符但排除某个组合

我需要这个正则表达式的帮助.我有许多文件名,格式为:

DataFile_en.dat
DataFile_de.dat
DataFile_es.dat
Run Code Online (Sandbox Code Playgroud)

它是DateFile_,后跟两个字符的语言代码.

我想编写一个正则表达式,匹配所有具有此模式的文件名但不包括英文名称(DataFile_en.dat)

我有这个模式来提取所有文件:

DataFile_\w{2}.dat
Run Code Online (Sandbox Code Playgroud)

但我不知道如何编写模式以排除使用'en'作为语言代码的模式.正则表达式将在Python中使用.

python regex

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

为什么我的伴随对象无法访问其伴随类中的方法

我是Scala的新手.我读到伴侣对象可以访问伴侣类的方法.我有以下代码:

class MinPath {
  def minPath(input : List[List[Int]], tempResult : List[List[Int]], currentlevel : Int) : List[List[Int]] = {
    ....
  }
}

object MinPath {
  ....
  def main(args : Array[String]) = {
    // This has an compile error
    val transformed =  minPath(input, List(List()), 0)
  }
}
Run Code Online (Sandbox Code Playgroud)

它们在名为MinPath.scala的同一文件中定义.

但是对象中使用的minPath会导致编译错误,因为它无法找到minPath.

我想知道我在这里做错了什么?

scala

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