相关疑难解决方法(0)

581
推荐指数
10
解决办法
45万
查看次数

正确使用Java"assert"关键字

我从来没有理解assert用过的东西,尽管我已经阅读了很多例子,但他们并没有真正让我知道我应该使用它的原因或原因.

所以,不要问一个例子,我会提供一个,让我知道这是否正确使用assert.

// The idea is that the `mode` variable should be 0 or 1, and no other number.
switch(mode) {
     case 0: 
          // do stuff
          break;
     case 1:
          // do other stuff
          break;

     default:
          // assert code?
}
Run Code Online (Sandbox Code Playgroud)

如果这是正确的,请告诉我如何在这种情况下使用它.如果这不是它应该如何使用,请提供一个例子.

java assert

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

11
推荐指数
2
解决办法
9855
查看次数

何时在客户端和通用GWT代码中使用断言

StackOverflow上有几个问题讨论了何时应该使用assert语句而不是抛出一些异常的问题.(这里,这里,这里,这里这里的例子.

但是,我开始怀疑assert-versus-throw的传统智慧是基于您在JVM中运行的假设.在GWT Universe中,您的Java被音译为JavaScript并在浏览器的上下文中运行,这一组权衡感觉不同:在浏览器中运行时,断言总是被编译掉,并且任何使JavaScript的大小变小的东西是一个胜利,特别是如果你的网络应用程序必须在手机上运行.断言确实可以在DevMode中运行,因此它们在开发过程中具有实用性.

所以我的问题是:有没有人考虑过一套最佳实践规则来管理如何在GWT中使用断言语句?我有我的团队成员问我"因为断言被编译出来,有它们是否有意义?",我想对他们有一个好的答案.

此外,是否有人对Google的GWT开发人员在此主题上的理念有所了解?查看GWT源代码,他们似乎经常使用它.

java gwt assert design-by-contract

8
推荐指数
1
解决办法
2605
查看次数

什么是Java中的断言语句?

可能重复:
断言做了什么?

请至少举一个例子给我一些细节.

java assert

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

当JVM在java程序中遇到断言语句时,它在内部做什么?

我是java中的断言概念的新手.我在哪里读过关于java中的断言概念,总是说,如果我们使用assert expression1:expression2,它将使用默认构造函数或AssertionError类中的七个构造函数之一,以防它失败. 但我怀疑的是,当assert语句失败时,谁实际上抛出了这个AssertionError错误?编译器是否会添加" throw new AssertionError(---) ",否则JVM将检查表达式并抛出AssertionError(如ArithmeticException,NullPointerException等...)?

java assert assertion

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

断言String有一定的长度(Java)

有没有办法在一个方法中断言输入String有一定的长度?

我试过断言,stringName[4];但似乎不起作用

java string assert

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

测试Java程序的最佳方法

我想测试下面的java程序.

package com.arrays;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * Find all pairs in an array of non-negative unique numbers whose sum is equal to k
 * For Example. {1,3,4,5,6} and k=9, then {3,6} and {4,5}
 *
 */
public class FindAllPairsIfSumToK {

    public List<Pair> findAllPairsWhoseSumIsK(int[] inputArray, int k) {

        Set<Integer> tempSet = new HashSet<>();
        List<Pair> pairs = new ArrayList<>();

        for(int i=0;i<inputArray.length;i++) {
            tempSet.add(inputArray[i]);
        }

        for(int i=0;i<inputArray.length;i++) {
            if((2*inputArray[i] != k) && tempSet.contains(k-inputArray[i])) {
                pairs.add(new Pair(inputArray[i], k-inputArray[i]));
            } …
Run Code Online (Sandbox Code Playgroud)

java testing unit-testing testcase

0
推荐指数
1
解决办法
329
查看次数