精华内容
下载资源
问答
  • 关于Boolean类型的转换

    2019-01-05 09:15:44
    1.!(变量名): var first = ‘abc’; console.log( !first); 结果为flase! 2. !!(变量名): var second=‘abc’; console.log( !second); 结果为true!

    1.!(变量名):
    var first = ‘abc’;
    console.log( !first);
    结果为flase!
    2. !!(变量名):
    var second=‘abc’;
    console.log( !second);
    结果为true!

    展开全文
  • lombok关于boolean类型的问题

    千次阅读 2017-07-06 16:12:00
    在项目的使用过程中遇到一个奇怪的问题,剥除所有的逻辑之后,可还原如下示例: ... private boolean isTest; private boolean test1; private int getI; public static void main(String[] args) { ...

     

    在项目的使用过程中遇到一个奇怪的问题,剥除所有的逻辑之后,可还原如下示例:

    public class Test {
        private boolean isTest;
        private boolean test1;
    
        private int getI;
    
        public static void main(String[] args) {
            Test test = new Test();
            test.setTest(true);
            test.setTest1(false);
            test.setGetI(1);
    
            boolean result = test.isTest;
            System.out.println(JSON.toJSONString(test));
        }
    }

    上面的类中有两个boolean型字段isTest和test1。按照常理输出的也应是这两个字段,我们看一下:

    {"getI":1,"test":true,"test1":false}

    我们可以看到字段名发生了改变,isTest变为了test。为什么会这样呢?研究了一下lombok生成set和get函数的源码,我们看一下编译后的class文件:

    public class Test {
        private boolean isTest;
        private boolean test1;
        private int getI;
    
        public static void main(String[] args) {
            Test test = new Test();
            test.setTest(true);
            test.setTest1(false);
            test.setGetI(1);
            boolean result = test.isTest;
            System.out.println(JSON.toJSONString(test));
        }
    
        public Test() {
        }
    
        public boolean isTest() {
            return this.isTest;
        }
    
        public boolean isTest1() {
            return this.test1;
        }
    
        public int getGetI() {
            return this.getI;
        }
    
        public void setTest(boolean isTest) {
            this.isTest = isTest;
        }
    
        public void setTest1(boolean test1) {
            this.test1 = test1;
        }
    
        public void setGetI(int getI) {
            this.getI = getI;
        }
    
        public boolean equals(Object o) {
            if(o == this) {
                return true;
            } else if(!(o instanceof Test)) {
                return false;
            } else {
                Test other = (Test)o;
                return !other.canEqual(this)?false:(this.isTest() != other.isTest()?false:(this.isTest1() != other.isTest1()?false:this.getGetI() == other.getGetI()));
            }
        }
    
        protected boolean canEqual(Object other) {
            return other instanceof Test;
        }
    
        public int hashCode() {
            boolean PRIME = true;
            byte result = 1;
            int result1 = result * 59 + (this.isTest()?79:97);
            result1 = result1 * 59 + (this.isTest1()?79:97);
            result1 = result1 * 59 + this.getGetI();
            return result1;
        }
    
        public String toString() {
            return "Test(isTest=" + this.isTest() + ", test1=" + this.isTest1() + ", getI=" + this.getGetI() + ")";
        }
    }

    从上面可以看出lombok生成boolean类型的get函数以is开头,且去掉了字段的is,把字段当成了test。 而对于其他类型的字段,生成的get函数虽然以get开头,但没有这个问题。如上面的getI字段,生成的get函数名是 getGetI(),所以输出的字段名还是 getI

    转载于:https://www.cnblogs.com/yawen/p/7126905.html

    展开全文
  • 关于Boolean类型的查询: eg:Boolean print //是否打印 <if print != null> print = ${param.print} </if> 切勿判断print != '' 因为print为false时这样走不到这个判断,推测 '' 存的也为false,...

    关于Boolean类型的查询:

    eg:Boolean print //是否打印

    <if print != null>

    print = ${param.print}

    </if>

    切勿判断print != '' 因为print为false时这样走不到这个判断,推测 '' 存的也为false,所以相同了,走不到该判断。

    具体原因还未找到,暂时先记着,日后再找根源问题。

    展开全文
  • public class Test2 { private static volatile Boolean aBoolean = true; static class A implements Runnable{ @Override public void run() { synch...
    public class Test2 {
    
        private static volatile Boolean aBoolean = true;
        static class A implements Runnable{
            @Override
            public void run() {
                synchronized (aBoolean){
                    while (aBoolean){
                        try {
                            System.out.println("进入A, 等待中");
                            aBoolean.wait();
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                    System.out.println("A over");
                }
            }
        }
    
        static class B implements Runnable{
    
            @Override
            public void run() {
    
                try {
                    TimeUnit.SECONDS.sleep(3);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
    
                synchronized (aBoolean){
                    System.out.println("通知A可以运行了");
                    aBoolean = false;
                    aBoolean.notifyAll(); 
                    //Boolean.TRUE.notifyAll();
                }
            }
        }
        public static void main(String[] args) {
            new Thread(new A()).start();
            new Thread(new B()).start();
        }
    }

    运行结果:

    进入A, 等待中
    通知A可以运行了
    Exception in thread "Thread-1" java.lang.IllegalMonitorStateException
        at java.lang.Object.notifyAll(Native Method)
        at Test2$B.run(Test2.java:39)
        at java.lang.Thread.run(Thread.java:748)
    由于我们会给aBoolean重新赋值, 导致对象监视器改变, 因为falsetrue这两个常量对应着两个不同的对象。当aBoolean产生变化时,很可能导致不同的线程同步了不同的对象
    解决方法: 
    将这一行 aBoolean.notifyAll();  改为: Boolean.TRUE.notifyAll();
    或者是用显示锁ReentrantLock的方式

    转载于:https://www.cnblogs.com/jpfss/p/9620127.html

    展开全文
  • 平时工作中大家经常使用到boolean以及Boolean类型的数据,前者是基本数据类型,后者是包装类,为什么不推荐使用isXXX来命名呢?到底是用基本类型的数据好呢还是用包装类好呢? 一、为什么不推荐使用isXXX来命名布尔...
  • 一段code:boolean m = false;if(m = false){ System.out.println("...编译前思考:第一句:把Boolean类型变量m赋值为false; OK.没问题。2:一个if语句:但if表达式中是再次对m变量进行赋值。而不是一...
  • 结果是指示灯一直是亮着的 C99标准的定义boolean类型,有2个值,真和假,如果表达式求值是0,则该类型值为假,表达式求值非0则该类型值为真, 而华大库函数中,判断(TRUE==bFlag),TRUE的值是1,而bFlag值是0x80,...
  • 最近在开发过程中发现一个问题:Boolean类型的值无法在flex和java间传递,经过一段研究发现,问题出现在Boolean类型的getter和setter方法上。 按照javabean的规范,小布尔类型的getter是以is做前缀的,但是大布尔...
  • 关于boolean类型变量的处理

    千次阅读 2011-07-05 16:48:26
    其实完全可以只用一个两个boolean变量就可以完全控制好,而且替换查找起来也方便: public static final boolean isWordEditor = true; public static final boolean isExcelEditor = true; 在判断的时候只需要根据...
  • (这是我转载的内容)
  • 在看别人程序源码的时候发现一段是自定义Boolean类型的函数,但是呢整个源码中没发现有调用他的部分,只看到一段对他的判断, if Boolean类型的函数 then ,这个判断是在程序加载时通过调用另外一个过程在出现这个判断的...
  • /** *为简化,只列举两个字段 */ public class WestMedicationBo implements Serializable { private static final long serialVersionUID = 1L;... private boolean isPaid; private long ...
  • 首先介绍一下javaBean关于getter和setter方法命名的规范,可能大家就能猜到为什么 public &lt;PropertyType&gt; get&lt;PropertyName&...关于boolean类型又有专门的一套命名规则 public bool...
  • 强制转换包含三个函数:Number String Boolean 手动将各种类型的值,分别转换成数字、字符串或者布尔值。 二、三个函数的转换规则 String 转换规则: 先使用toString方法,返回值有两种: 1.返回原始类型值直接使用...
  • boolean isProductInPromotion = false; 其的get、set方法如下 public boolean isProductInPromotion() {  return isProductInPromotion;  }  public void setProductInPromotion(boolean ...
  • sql boolean类型

    2016-08-18 12:42:00
    boolean类型MYSQL保存BOOLEAN值时用1代表TRUE,0代表FALSE,boolean在MySQL里的类型为tinyint(1),MySQL里有四个常量:true,false,TRUE,FALSE,它们分别代表1,0,1,0,mysql> select true,false,TRUE,FALSE;+-...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,680
精华内容 672
关键字:

关于boolean类型