Java 在对象中存储值并将其转换为int
我正在coursera做一项作业,我正在为一张地图编码,地图上会显示标记,指出发生地震的地点。因此,如果地震发生在2000年之后,我想将标记的颜色改为黄色,如果地震发生在2000年之前,则改为灰色。在我的代码中,我在ArrayList中使用了PointFeature作为数据类型,它存储了标记改变颜色的年份等信息Java 在对象中存储值并将其转换为int,java,int,markers,unfoldingmap,Java,Int,Markers,Unfoldingmap,我正在coursera做一项作业,我正在为一张地图编码,地图上会显示标记,指出发生地震的地点。因此,如果地震发生在2000年之后,我想将标记的颜色改为黄色,如果地震发生在2000年之前,则改为灰色。在我的代码中,我在ArrayList中使用了PointFeature作为数据类型,它存储了标记改变颜色的年份等信息 List<PointFeature> bigEqs = new ArrayList<PointFeature>(); Location valLoc = ne
List<PointFeature> bigEqs = new ArrayList<PointFeature>();
Location valLoc = new Location(-38.14f,-73.03f);
Feature valEq = new PointFeature(valLoc);
bigEqs.add((PointFeature) valEq);
valEq.addProperty("title", "Valvidivia,Chile");
valEq.addProperty("magnitude","9.5");
valEq.addProperty("date", "May 22,1960");
valEq.addProperty("year", "1960");
Location valLoc1 = new Location(60.59f,-147.848f);
Feature alaskaEq = new PointFeature(valLoc1);
bigEqs.add((PointFeature) alaskaEq);
alaskaEq.addProperty("title", "Prince William Sound ,Southern Alaska");
alaskaEq.addProperty("magnitude","9.2");
alaskaEq.addProperty("date", "March 28,1964");
alaskaEq.addProperty("year", "1964");
Location valLoc2 = new Location(3.30f,95.98f);
Feature sumantraEq = new PointFeature(valLoc2);
bigEqs.add((PointFeature) sumantraEq);
sumantraEq.addProperty("title", "Sumatra-Andaman Islands ");
sumantraEq.addProperty("magnitude", " 9.1");
sumantraEq.addProperty("date", " December 26,2004");
sumantraEq.addProperty("year", " 2004");
Location valLoc3 = new Location(38.30f,142.37f);
Feature japanEq = new PointFeature(valLoc3);
bigEqs.add((PointFeature) japanEq);
japanEq.addProperty("title", "Tohuku(Eastern coast of Honshu) ,Japan");
japanEq.addProperty("magnitude", " 9.1");
japanEq.addProperty("date", "November 3 , 2011 ");
japanEq.addProperty("year", "2011 ");
Location valLoc4 = new Location(52.62f,159.78f);
Feature kamchatkaEq = new PointFeature(valLoc4);
bigEqs.add((PointFeature) kamchatkaEq);
kamchatkaEq.addProperty("title", "Kamchatka,Russia ");
kamchatkaEq.addProperty("magnitude", " 9.0");
kamchatkaEq.addProperty("date", "April 24,1952 ");
kamchatkaEq.addProperty("year", " 1952");
List<Marker> markers1 = new ArrayList<Marker>();
for(PointFeature eq:bigEqs) {
markers1.add(new SimplePointMarker(eq.getLocation(),eq.getProperties()));
} for(Marker mk:markers1) {
if( mk.getProperty("year")>2000) {
mk.setColor(color(255,255,0));
}else {
mk.setColor(color(128,128,128));
}
map.addMarker(mk);
}
但是它显示了一个错误:如果mk.getPropertyyear>2000,那么它不能在这里将obj转换为int,因为年份是一个数字,如果你将它解析为int,它就会工作 例如:
if(Integer.parseInt(mk.getProperty("year"))>2000)
这会奏效的