小编Boh*_*ian的帖子

如何优雅地终止 TestNG 测试?

我的一些 TestNG 测试涉及持久数据使用。当测试完成时,应该执行一些操作来恢复数据的状态(例如清理)。我使用@AfterClassor解决了这个问题@AfterMethod

问题是,有时在开发过程中我的测试会挂起,我需要手动终止它。当终止运行测试的 JVM 进程时,我必须自己执行所有测试后操作。

有什么方法可以终止测试以便@After*调用我的方法吗?

java testng

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

将mysql正则表达式转换为java正则表达式(和/或反之亦然)

我有一些我需要从mysql转换为java的正则表达式,但它们在传递给String.matches()时不起作用.

如何将mysql正则表达式转换为java正则表达式?
是否有任何API(内置或第三方)来执行此操作?

java regex mysql

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

计算组数百分比(*)

Select * from Namelist;
Name      Age
Sathish   25
Sathish   65
Sathish   55
Sathish   45
Sathish   35
Jana      55
Jana      25
Jana      10
Bala      55
Bala      26
Run Code Online (Sandbox Code Playgroud)

如何获得给定格式的百分比值;

Name   Count   Percentege
Sathish  5     50%
Jana     3     30%
Bala     2     20%
Run Code Online (Sandbox Code Playgroud)

请分享SQL查询?

mysql sql

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

如何一次只更新几行?(多表语法)

有没有办法不使用脚本来运行UPDATE,它不会通过一次只执行一定数量的行来减慢DB的速度?

我正在表演

UPDATE .. SET .. FROM .. INNER JOIN .. ON ... WHERE
Run Code Online (Sandbox Code Playgroud)

它将在一个非常大的表中更新3,171行.

我不想锁定DB或减慢它.有任何想法吗?

注意:

根据用于UPDATE的MySQL文档:对于多表语法,UPDATE更新table_references中指定的满足条件的每个表中的行.在这种情况下,不能使用ORDER BY和LIMIT.

我正在执行INNER JOIN并且不允许使用LIMIT,使用LIMIT作为解决方案在这种情况下不起作用.

mysql

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

是否有更简洁/优雅的方式来格式化以下社会安全号码,如有或没有Groovy的字符串?

之前:

EUTQQGOPED
Run Code Online (Sandbox Code Playgroud)

后:

EUT-QQG-OPED
Run Code Online (Sandbox Code Playgroud)

下面的示例是我想出的将" - "添加到10个字符的字符串作为可读性要求的一部分.格式化模式类似于美国社会安全号码的格式.

有没有更简单,更简洁的方式来完成额外的格式?

public static void main(String[] args){
        String pin = "EUTQQGOPED";
        StringBuilder formattedPIN = new StringBuilder(pin);
        formattedPIN = formattedPIN.insert(3, '-').insert(7, '-');
        //output is EUT-QQG-OPED
        println formattedPIN
}
Run Code Online (Sandbox Code Playgroud)

java groovy

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

为什么锁定文件时会发生 OverlappingFileLockException?

我尝试锁定一个文件并使用以下代码写入它:

public class TrainSetBuildTask implements Runnable {
    private String pathname;
    public TrainSetBuildTask(String pathname){
        this.pathname = pathname;
    }

    @Override
    public void run() {
          try {
              String content = "content\n";
             //write to a file
             FileOutputStream os = new FileOutputStream(new File(pathname), true);
             FileChannel channel = os.getChannel();
             FileLock lock = channel.tryLock();
             if (lock != null) {
                ByteBuffer bytes = ByteBuffer.wrap(content.getBytes()); 
                channel.write(bytes);
                lock.release();
             }
             channel.close();
             os.close();
          } catch (IOException e) {
              e.printStackTrace();
          }
     }
 }
Run Code Online (Sandbox Code Playgroud)

并新建两个带有该类实例的线程:

    String pathname = "/home/sjtu123/test.arff";
    TrainSetBuildTask task1 = new TrainSetBuildTask(pathname); …
Run Code Online (Sandbox Code Playgroud)

java multithreading locking

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

通过使用具体类而不是接口来减少编译的js的大小

我已经读过GWT,指定返回具体实现的方法,例如:

public ArrayList<String> getList();
Run Code Online (Sandbox Code Playgroud)

而不是通常首选的"抽象接口",例如:

public List<String> getList();
Run Code Online (Sandbox Code Playgroud)

结果在GWT产生编译JavaScript文件一个较小的,因为客户端(即JS)代码不必满足所有已知的接口的实现(在的例子中List,客户端代码必须能够处理LinkedList,ArrayList,Vector,等),因此它可以通过不编译未使用的实现来优化js.

我密切相关的问题是:

  • 这是真的?(以下问题假设真的)
  • 是使用接口还是每个应用程序的每类优化?即
  • 我是否只看到重构一个课程的好处?要么
  • 一旦所有客户端类都被重构为不使用接口,我才会看到一个好处吗?

size gwt class abstract

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

为什么抽象类"DocumentBuilderFactory"允许实例化新实例

最近,我一直在使用XML解析器.这只是我的开始,我设法了解如何在java中使用DOM解析器类,DocumentBuilderFactoryDocumentBuilder解析XML文档.

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();  
DocumentBuilder db = dbf.newDocumentBuilder();            
Run Code Online (Sandbox Code Playgroud)

我问自己是怎么一个抽象类,如DocumentBuilderFactoryDocumentBuilder,被允许实例化新实例?然后在另一个例子中我看到:

Calendar calendar = Calendar.getInstance();  
System.out.println(calendar.get(Calendar.DATE)); 
Run Code Online (Sandbox Code Playgroud)
  1. 据我所知,你不能为抽象和接口类实例化(换句话说,创建一个对象).我对么?
  2. do getInstance()newInstancce()方法是否创建了上述抽象类的实例?

我是否遗漏了使用抽象类及其新对象的内容?

java oop abstract-class instantiation

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

如何用一个空行替换多个空格和换行符

如何删除字符串中的多个空格和换行符,但为每组空行保留至少一个空行.

例如,更改:

"This      is



a        string.




Something."
Run Code Online (Sandbox Code Playgroud)

"This is

a string.

Something."
Run Code Online (Sandbox Code Playgroud)

我正在使用.trim()从字符串的开头和结尾去除空格,但我找不到任何用于删除字符串中的多个空格和换行符的内容.

我想只保留一个空格和一个换行符.

java string string-formatting

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

用Java 8替换重复的get语句可选

我有一个用例,我有嵌套类和顶级类的对象.我想得到一个在第N级的值.我正在重复使用getter来实现这一点以避免NPE.示例代码(假设有吸气剂)

class A {
    String a1;
    String getA1() {
        return a1;
    }
}

class B {
    A a;
    A getA() {
        return a;
    }
}

class C {
    B b;
    B getB() {
        return b;
    }
}

class D {
    C c;
    C getC() {
        return c;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我有一个对象dD,并希望得到String a1A,我在做什么是以下几点:

String getAValue(D d) {
    String aValue = null;
    if(d != null && d.getC() != null && d.getC().getB() != null && d.getC().getB().getA() …
Run Code Online (Sandbox Code Playgroud)

java optional

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