Annotations:hype or not?

2005年3月23日,JCP发布JSR250草案,引发社区讨论。Spring框架创始人Rod Johnson申请加入JSR-250专家组遭拒。此外,围绕注解的应用及贫血模型的议题展开了一系列讨论。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3月23号,jcp发布了JSR 250: Common Annotations for the JavaTM Platform early draft review(http://jcp.org/en/jsr/detail?id=250),引发了tss的一场规模不大不小的讨论(http://www.theserverside.com/news/thread.tss?thread_id=32833),其中一条reply让人感觉很有意思:
SpringFramework的Rod Johnson的一条reply说:
Hani ???????
Posted by: Rod Johnson on March 24, 2005 in response to Message #163144 1 replies in this thread
Talking of membership, my application to join the JSR-250 expert group
when it was established (last August or September I think) was rejected.
Rgds
Rod
然后又有个简短的回应:
And?
这个and,我理解的意思是: 那又如何呢?或者,那又说明什么呢?


如果说JSR 250还主要是针对J2EE的,那么下面的针对J2SE的"is evil"系列的关于annotation新文章竟又牵出了DomainObject/ServiceObject以及贫血模型的议题:
http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html

不仅仅是用到语言方面,annotation现在还想到Validity Constraints方面试一把:http://www.theserverside.com/news/thread.tss?thread_id=32725
下面的评论有一条非常的尖刻:
Yet another stupid idea. Now is the time for annotation hype and everybody
will try to use it, properly or not.

在公元2005年的今天,annotation的确应该算是一个超级炒冷饭,那么,是不是象评论中说的那样,有人
Just invent something, spread the word and hope you will get famous呢?我们拭目以待.




<think>好的,用户现在询问的是UG二次开发中Annotations::DimensionCollection的使用方法和示例教程。我需要先回忆一下NXOpenAPI的相关知识,特别是关于注释和尺寸标注的部分。首先,Annotations::DimensionCollection应该是用于管理工程图中的尺寸标注的集合类。根据之前的引用[1]和[2],DimensionBuilder类用于创建尺寸,而DimensionCollection可能用于获取或遍历现有的尺寸。用户可能需要了解如何访问这个集合,如何获取其中的尺寸对象,或者如何添加新的尺寸。接下来,我需要确认DimensionCollection的具体功能。通常,集合类在API中用于存储和管理同一类型的对象。比如,可能通过DimensionCollection来访问当前图纸中的所有尺寸标注,或者某个视图中的尺寸。此外,可能需要结合View或Part来获取这个集合的实例。然后,考虑用户可能的实际需求。他们可能想批量处理尺寸,比如修改属性、查找特定类型的尺寸,或者进行自动化标注。因此,示例代码应该展示如何获取DimensionCollection对象,遍历其中的尺寸,并执行一些操作,比如输出信息或修改参数。 需要检查之前的引用内容。引用[1]提到了使用DimensionBuilder创建线性尺寸,引用[2]则提到从Dimension获取PMI角度尺寸,说明Dimension对象可能有不同的子类型。因此,在遍历DimensionCollection时,可能需要检查每个Dimension的具体类型,并进行相应的处理。还要注意代码示例的语言。用户提供的引用中有C#示例,所以可能更倾向于C#代码。但NXOpen也支持其他语言,如C++和VB,但用户没有特别说明,所以默认用C#。另外,用户可能需要知道如何访问DimensionCollection。通常,可能需要通过Session或Part的Annotations属性来获取。例如,session.Parts.Work.Annotations.Dimensions可能返回当前的DimensionCollection。 最后,确保代码示例的正确性,包括正确的命名空间引用,如usingNXOpen.Annotations;,以及正确的对象初始化方法。同时,提醒用户注意异常处理,比如空引用或权限问题,这在自动化操作中很重要。 总结步骤:解释DimensionCollection的作用,展示如何获取实例,遍历元素,处理不同类型尺寸,并提供相关示例代码。同时,生成相关问题,帮助用户深入理解。</think>在Siemens NX二次开发中,`Annotations::DimensionCollection`主要用于管理工程图中的尺寸标注集合。以下是具体使用方法及示例: ### 一、DimensionCollection基础应用 1. **获取当前图纸页的尺寸集合**: ```csharp using NXOpen; using NXOpen.Annotations; Session session = Session.GetSession(); Part workPart = session.Parts.Work; // 获取当前图纸页 DrawingSheet currentSheet = workPart.DrawingSheets.CurrentDrawingSheet; // 获取当前图纸页的所有尺寸 DimensionCollection dimensionCollection = workPart.Annotations.Dimensions; ``` 2. **遍历尺寸集合**: ```csharp foreach (Dimension dim in dimensionCollection) { // 判断尺寸类型 if (dim is LinearDimension) { LinearDimension linearDim = (LinearDimension)dim; Logger.Info($"线性尺寸值:{linearDim.Value}"); } else if (dim is AngularDimension) { AngularDimension angularDim = (AngularDimension)dim; Logger.Info($"角度尺寸值:{angularDim.Value}"); } } ``` ### 二、关键操作示例 1. **批量修改尺寸颜色**: ```csharp foreach (Dimension dim in dimensionCollection) { dim.Color = 186; // 设置颜色值为NX预定义颜色代码 dim.UpdateDimension(); } ``` 2. **通过表达式定位尺寸**: ```csharp Dimension targetDim = dimensionCollection.FindObject("MyDimension_1"); if (targetDim != null) { targetDim.SetText("公差±0.1"); targetDim.UpdateDimension(); } ``` ### 三、高级应用场景 1. **PMI尺寸提取**(引用[2]): ```csharp foreach (Dimension dim in dimensionCollection) { if (dim is PMIAngularDimension) { PMIAngularDimension pmiDim = (PMIAngularDimension)dim; double angleValue = pmiDim.GetActualValue(); } } ``` 2. **尺寸关联性检查**: ```csharp foreach (Dimension dim in dimensionCollection) { if (!dim.IsAssociated) { Logger.Warning($"发现非关联尺寸:{dim.Name}"); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值