m0_52253940 2021-11-01 02:35 采纳率: 100%
浏览 53
已结题

一段代码五个问题,第一个是有没有办法注解一个参数,使其不会被传null,或传null会警告,我指的不是值为null的String,@nonnull没用

问题1 有没有办法注解一个参数,使其不会被传null,或传null会警告,我指的不是值为null的String,@nonnull没用

问题2
当this.getON_title()+this.getON_content()+this.getON_source()加起来是null,
给 public static boolean isNotNullNorEmpty( String string)传的是null还是值为null的String

后面debug调试用logcat测出2021-11-01 01:38:17.414 16142-16142/com.example.myapplication D/boolean_test: Ordinary_Note_isNotNullNorEmpty: title null content null source null

//getON_title()、getON_content()、getON_source()获取的是String或null
if(StringFunction.isNotNullNorEmpty(this.getON_title()+this.getON_content()+this.getON_source()));

问题3
为什么黄背景提示string==null永远是false
find cause为什么是“string”was dereferenced

  public static boolean isNotNullNorEmpty( String string) {
      
       boolean b1 = string==null;
       boolean b2 = string.length()==0;
       boolean b3 = (string==null || string.length()==0);
       Log.d("boolean_test", "b1 "+b1+" b2 "+b2+" b3 "+b3);
       if(string==null || string.length()==0){
           Log.d("boolean_test", "StringFunction_isNotNullNorEmpty: "+"false");
            return false;
        }
       Log.d("boolean_test", "StringFunction_isNotNullNorEmpty: "+"true");
        return true;
   
    }

问题4
上面boolean b2 = string.length()==0;
为什么string是null时,length方法没有抛出异常

问题5
logcat为什么会得出这样的结果
2021-11-01 01:38:17.414 16142-16142/com.example.myapplication D/boolean_test: b1 false b2 false b3 false
2021-11-01 01:38:17.414 16142-16142/com.example.myapplication D/boolean_test: StringFunction_isNotNullNorEmpty: true
2021-11-01 01:38:17.414 16142-16142/com.example.myapplication D/boolean_test: Ordinary_Note_isNotNullNorEmpty: true
2021-11-01 01:38:17.414 16142-16142/com.example.myapplication D/boolean_test: Ordinary_Note_isNotNullNorEmpty: title null content null source null

下面是相关代码


package com.example.idea.models_class;

import android.util.Log;

import com.example.idea.Function.StringFunction;

import org.litepal.crud.LitePalSupport;

public class Ordinary_Note extends LitePalSupport {
    
    private int id;
    
    private String ON_title;
    
    private String ON_content;
    
    private String ON_source;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getON_title() {
        return ON_title;
    }

    public void setON_title(String ON_title) {
        this.ON_title = ON_title;
    }

    public String getON_content() {
        return ON_content;
    }

    public void setON_content(String ON_content) {
        this.ON_content = ON_content;
    }

    public String getON_source() {
        return ON_source;
    }

    public void setON_source(String ON_source) {
        this.ON_source = ON_source;
    }

    public boolean isNotNullNorEmpty(){
        String string = this.getON_title()+this.getON_content()+this.getON_source();
        if(StringFunction.isNotNullNorEmpty(string)){
            Log.d("boolean_test", "Ordinary_Note_isNotNullNorEmpty: "+"true");
            Log.d("boolean_test","Ordinary_Note_isNotNullNorEmpty: "+"title "+this.getON_title()+" content "+this.getON_content()+" source "+this.getON_source());
            return true;
        }
        Log.d("boolean_test", "Ordinary_Note_isNotNullNorEmpty: "+"false");
        return false;
    }
}






public class StringFunction {

    public static boolean isNullOrEmpty(String string) {
        if(string==null || string.length()==0){
            return true;
        }
        return false;
    }


   public static boolean isNotNullNorEmpty( String string) {
      
       boolean b1 = string==null;
       boolean b2 = string.length()==0;
       boolean b3 = (string==null || string.length()==0);
       Log.d("boolean_test", "b1 "+b1+" b2 "+b2+" b3 "+b3);
       if(string==null || string.length()==0){
           Log.d("boolean_test", "StringFunction_isNotNullNorEmpty: "+"false");
            return false;
        }
       Log.d("boolean_test", "StringFunction_isNotNullNorEmpty: "+"true");
        return true;
   
    }
  • 写回答

3条回答 默认 最新

  • zcl_1991 2021-11-01 09:26
    关注

    三个String类型的参数相加 结果不可能是 null,即使每个参数都是null,相加后的结果也是 "nullnullnull";

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月9日
  • 已采纳回答 11月1日
  • 修改了问题 11月1日
  • 创建了问题 11月1日

悬赏问题

  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口