java编译很好,但在';从long到int的可能有损转换';错误
我编译了一个Maven Java项目,它按照应该的方式编译和运行,但当我提交给GitHub时,Travis CI说我有“可能从long到int的有损转换”错误。我查过了,我相信我所有的都是ints,以下是相关代码: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
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.*
类。无论如何,我认为我们需要称之为“不可生产”。错误消息指向-
,这也很奇怪,因为从一个数字减去另一个数字不可能导致有损转换。(无论是哪种类型!)