java编译很好,但在';从long到int的可能有损转换';错误

java编译很好,但在';从long到int的可能有损转换';错误,java,arraylist,travis-ci,Java,Arraylist,Travis Ci,我编译了一个Maven Java项目,它按照应该的方式编译和运行,但当我提交给GitHub时,Travis CI说我有“可能从long到int的有损转换”错误。我查过了,我相信我所有的都是ints,以下是相关代码: public static final String FIELD_COUNT_PROPERTY = "fieldcount"; public static final String FIELD_COUNT_PROPERTY_DEFAULT = "10"; int fieldcount

我编译了一个Maven Java项目,它按照应该的方式编译和运行,但当我提交给GitHub时,Travis CI说我有“可能从long到int的有损转换”错误。我查过了,我相信我所有的都是ints,以下是相关代码:

public static final String FIELD_COUNT_PROPERTY = "fieldcount";
public static final String FIELD_COUNT_PROPERTY_DEFAULT = "10";
int fieldcount;
private List<String> fieldnames;
public static final String FIELD_NAME_TITLES = "fieldnametitles";
public static final String FIELD_NAME_TITLES_DEFAULT = "0";
private String fieldnametitles;

fieldcount =
  Integer.parseInt(p.getProperty(FIELD_COUNT_PROPERTY, FIELD_COUNT_PROPERTY_DEFAULT));
fieldnametitles = p.getProperty(FIELD_NAME_TITLES, FIELD_NAME_TITLES_DEFAULT);
if (fieldnametitles == "0") {
  fieldnames = new ArrayList<>();
  for (int i = 0; i < fieldcount; i++) {
    fieldnames.add("field" + i);
  }
} else {
    fieldnames = new ArrayList<>(Arrays.asList(fieldnametitles.split(",")));
    int fieldcountadj = fieldcount - fieldnames.size();
    for (int i = 0; i < fieldcountadj; i++) {
      fieldnames.add("field" + i);
    }
}
publicstaticfinalstringfield\u COUNT\u PROPERTY=“fieldcount”;
公共静态最终字符串字段\u COUNT\u PROPERTY\u DEFAULT=“10”;
int字段计数;
私有列表字段名;
公共静态最终字符串字段\u NAME\u TITLES=“fieldnametitles”;
公共静态最终字符串字段\u NAME\u TITLES\u DEFAULT=“0”;
私有字符串字段名标题;
现场计数=
parseInt(p.getProperty(FIELD_COUNT_PROPERTY,FIELD_COUNT_PROPERTY_DEFAULT));
fieldnametitles=p.getProperty(字段名称标题,字段名称标题默认);
如果(fieldnametitles==“0”){
fieldnames=新的ArrayList();
对于(int i=0;i
如您所见,fieldcountadj、fieldcount被声明为int,可能无法将FieldName.size()识别为int?我试图将其更改为(int),但它被声明为冗余

Travis CL上显示的错误为:

[错误] /home/travis/build/brianfrankcooper/YCSB/core/src/main/java/com/yahoo/YCSB/workloads/corewloads.java:[408,38] 不兼容类型:可能从long转换为int


这引用了“int fieldcountadj=fieldcount-fieldnames.size();”行中的“-”符号

if(fieldnametitles==“0”)
这不是比较Java中字符串的方式请发布实际错误我能想到的最好的理论是:1)Travis上编译的代码与此代码不同。2) 错误不在那一行。3)
List
ArrayList
不是标准的
java.util.*
类。无论如何,我认为我们需要称之为“不可生产”。错误消息指向
-
,这也很奇怪,因为从一个数字减去另一个数字不可能导致有损转换。(无论是哪种类型!)