在某些Java泛型演员中,类型安全警告的含义是什么?

Java警告的含义是什么?

类型安全性:从Object到List的转换实际上是针对已删除的类型List

进行检查

当我尝试将对象转换为具有通用信息的类型时,会出现此警告,如下面的代码所示:

Object object = getMyList();
List list = (List) object;
0
额外 编辑
意见: 1
@Ian本网站的范围最初定义为“程序员数据库管理员,制图员,地理学家和任何对GIS专业感兴趣的人的问答网站”
额外 作者 Kevin Dente,
如果您想在Eclipse中摆脱黄色下划线,但不想添加 @SuppressWarning ,则可以选择忽略首选项中的警告。在首选项窗口中,转至 Java> Compiler> Errors / Warnings ,然后在部分下,更改选项未检查的泛型操作忽略
额外 作者 Axel,
这可能会更好地问StackOverflow,因为你在问编程问题。
额外 作者 Ian,

10 答案

这是sandvich的最佳功能!

它的工作原理与健康包完全相同。能够给医生一个三明治是很好的,因为他没有快速的自我治疗方法。计时器到期后,sandvich不会再生 - 您仍然需要找到保健包或饮水机。

Also, if you are under pressure and dont have time to eat the sandvich, you can drop it and walk over it. It only heals 50%, but the speed is the upside. Many times I'm being chased, I turn a corner, throw the sandvich, run over it, turn around, and mow down my attacker. This has been patched for a while now. Sandviches will not replenish your health by simply dropping them and running over them.

只是要小心,敌人不能先到达。它也可以治愈他们。

29
额外
那么 - 有一个忍者更新。山德维奇现在仍然处于冷却时间计时器,你仍然需要找到一个健康包。
额外 作者 Anonymous User,
Valve刚刚改变了Sanvich充电机制:不再需要中介包来再生它。现在它有一个冷却时间定时器,就像bonk!例如。
额外 作者 Keng,
据我所知,只有再补给的东西(和一个健康包)才能起作用。所以分配器会,但车不会。我认为购物车是这里唯一适用的,并且是一个medigun。
额外 作者 doekman,
谢谢,只是累了。还注意到推推车(恢复HP)不会重新生成三明治。
额外 作者 Adrian Clark,
如果它的50%HP提升能够让你恢复到100%,并且你接近一个小小的健康填充物,那么放弃sandvich也是有用的;你会得到更大的提升,只需等待冷却时间到期,然后才能使用它。这也适用于治疗其他人,所以通常情况下更好的办法是将Sandvich扔给受伤的军医,医治,然后再次为你的Sandvich拿起医疗包。
额外 作者 Riyaz Mohammed Ibrahim,
那些不把萨德维奇扔给他们的燃烧军医的重量级队员不会被称为团队!
额外 作者 TM.,
这个补丁实际上允许你现在选择它,如果你走过去。值得一提的是,如果你的盟友没有注意到你的慷慨礼物。
额外 作者 Zibbobz,

这是一个桌面应用程序还是Silverlight应用程序?如果它是基于网络的,你必须跳过一些篮球。您可以创建一个公开WKT的视图,然后将WKT客户端解析为WPF/Silverlight几何图形。

如果它是一个桌面应用程序,那么它会更容易一些。在SQL几何查看器的代码项目中有一个很好的例子,它将有助于桌面或web 。

您需要引用Microsoft SQL Server安装/100/SDK/Assemblies中的Microsoft.SqlServer.Types.dll,以直接使用SQLGeometry或SQLGeography。

Technologies like RIA don't understand these types but there is a work-around. Essentially you create a view that casts the geometry as a varbinary(max), use it in your OR mapper, RIA, LINQ, etc. and then convert it back on the client. There is a good tutorial here

很晚的编辑:Silverlight不会接受它们,因为前面提到的DLL没有针对Silverlight编译。获得Silverlight兼容版本在许多人的愿望清单上很高!

16
额外

您可以使用Silverlight ESRI API来可视化存储在SQL Server 2008中的空间数据:

http://resources.esri.com/arcgisserver/apis/silverlight/index.cfm?fa=codeGalleryDetails&scriptID=16494

3
额外

take a look at sharpmap: http://sharpmap.codeplex.com/

1
额外

SharpMap是最好的解决方案。我已经看过所有其他人,而且这是迄今为止最强大的。确保你使用的是2.0 beta版本。我做了一篇关于它的博客文章(包括下载链接)。随时检查一下。

http:// www。 jasonkiesel.com/index.php/119/my-go-to-collection-of-net-gis-libraries/

1
额外

功能数据对象(FDO)库允许您通过一组统一的接口访问各种地理空间数据格式(包括SQL Server)。

该库是用C ++编写的,但该库还附带了一个.net包装器。

http://fdo.osgeo.org

1
额外

你可以使用sql server的数据类型,你可以从nuget或这里获得它们: http://www.microsoft.com/en-us/download /details.aspx?id=16177 (接近页面尾部)

之后,你可以使用流利的nhibernate,再次从nuget或这个链接: (无法在此处插入链接,因为看起来像我没有10个代表...)

After that, you will need a custom UserType to map the sql type to the clr type in nhibernate. Lucky for you, this guy made one : http://blogs.ugidotnet.org/mik/archive/2010/03/26/map-sql-server-2008-geography-type-with-fluent-nhibernate.aspx

希望这可以帮助 !

1
额外

This warning is there because Java is not actually storing type information at run-time in an object that uses generics. Thus, if object is actually a List, there will be no ClassCastException at run-time except until an item is accessed from the list that doesn't match the generic type defined in the variable.

如果项目被添加到列表中,这会导致进一步的复杂性,并带有不正确的通用类型信息。任何代码仍然保持对列表的引用,但具有正确的泛型类型信息现在将具有不一致的列表。

要删除警告,请尝试:

List<?> list = (List<?>) object;

但是,请注意,您将无法使用某些方法,例如添加,因为编译器不知道您是否尝试添加不正确类型的对象。上面的代码在很多情况下都可以使用,但是如果你必须使用add或者其他一些类似的限制方法,你只需要在Eclipse中使用黄色下划线(或者 SuppressWarning 注释)。

0
额外

你有没有看过 nHibernate ?它使用空间.NET类型(如上面的dmbrubac所述),但也可以与除SQL服务器之外的其他数据库系统进行通信。

我不知道你是否也要求过UI级别,但这里是我的2美分:我已经与SharpMap,GeoAPI合作,并在几年前休息。他们很棒,但从来没有去过一个体育场,你可以说他们已经足够成熟,可以用于商业应用。我在一年前尝试了ESRI的Silverlight和WPF API,并创建了两个使用API​​的原型。这很棒,它不是免费的,但它确实很扎实,最先进,它可以完成所有你想做的事情和更多事情。

0
额外
用户界面比较简单,就像我们的可视化引擎一样。
额外 作者 Kevin Dente,

如果您正在编写Web客户端,则可以选择使用ArcGIS Spatial Data Service,该服务目前与Esri的MapIt产品一起打包(请参阅 http://resources.esri.com/MapIt )。该服务通过RESTful Web服务公开SQL Server表。 Web服务使用ArcGIS JSON格式,因此具有SQL Server空间数据的表格可以作为ArcGIS Web API中的FeatureLayer使用。如果你想要一个桌面客户端,你可以使用WPF API。

An alternative for desktop development is to use the SQL Server CLR Types that are included with the SQL Server feature packs. You can find the download page for the 2008 R2 feature pack here - http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=ceb4346f-657f-4d28-83f5-aae0c5c83d52. Scroll down or do a find for "CLR Types" to find the download link.

0
额外