Tag: 命名约定

ExecutorService命名约定Java

我最近发现自己使用了一些ExecutorServices(SingleThreadScheduledExecutor和newFixedThreadPool),但我没有任何好名字。 是否有任何关于命名这些对象的指南或约定? 我看过用于SingleThreadScheduledExecutors的名称如“workerThread”,这是正确的,因为它们不完全是线程吗?

为什么用C ++ / Java和类似的美元符号启动变量名称是不好的?

为什么用C ++ / Java中的美元符号和类似的PHP开始变量名称是不好的? 编辑:有风险吗?

在Spring MVC中使用Jackson JSON时,如何默认启用Pascal大小写?

我有一个使用Spring MVC创建和处理多个REST端点的项目。 我目前正致力于使用Jackson自动处理使用@RequestBody和@ResponseBody注释的JSON的分类/反序列化。 我让jackson工作了,所以我有一个起点。 我的问题是我们的旧序列化手动完成并使用Pascal套管而不是Camel套管(“MyVariable”而不是“myVariable”),jackson默认使用Camel套管。 我知道我可以使用@JsonProperty手动更改变量的名称。 话虽这么说,我不认为将@JsonProperty添加到我的所有变量中是一个可行的长期解决方案。 除了使用@JsonProperty注释之外,有没有办法让Jackson在序列化和反序列化时使用Pascal大小写? 编辑:看起来外部没有干净的方法。 有几个人建议重写不同的课程,以此来实现我的目标。 我愿意接受有关我可以改写的改变套管的建议。 目前我已经创建了一个自定义的ObjectMapper来设置我想要的一些属性(即Inclusion.NON_NULL )。 我还没有找到任何可以让我改变套管行为的地方。 有什么想法吗?

我是否误解了JavaBean方法命名约定或者这是一个exception?

我的代码中有神秘的事情发生。 这是bean的片段: public List getCFrags() { return cFrags; } public void setCFrags(List frags) { cFrags = frags; } 这是我的视图代码(标记文件)中的片段 cFrags:[${topic.cFrags}] 其中topic是bean类型的对象。 这是错误: javax.el.PropertyNotFoundException: Property ‘cFrags’ not found on type com.company.beans.BeanClass 还有一件事需要考虑。 eclipse生成的setter有一个细微的差别。 显然,它也不喜欢cFrags这个名字。 字段名称是cFrags,并且每隔一个setter我都会得到与该字段同名的参数,并使用约定this.fieldName = fieldName 。 你会注意到eclipse并没有坚持这个setter。 仅供参考:当我将getter更改为getContentsFrag()并引用它.contentsFrag时,这一切都很有效。

Java成员枚举类型是否应该大写?

这里的肛门问题:我们有Java枚举,它们是自己的类,以及作为类成员的枚举: public enum reportType { … 每次我看到它都会刺激我*因为当我看到它在声明中使用时,它是一个类型,并且类型应该大写。 但是当我试图利用它时,Eclipse警告我不应该大写字段名称。 我认为Eclipse可能比我更了解官方的Java约定,但它似乎并不正确。 甚至翻阅了Java约定文档,但没有看到引用这个问题。 没有双关语意

Java中getter的命名约定有多重要?

我非常相信一致性,因此也就是惯例。 但是,我目前正在开发一个Java框架,其中这些约定(特别是get / set前缀约定)似乎妨碍了可读性。 例如,某些类将具有id和name属性,并且使用o.getId()而不是o.id()似乎完全没有意义,原因如下: 这些类是不可变的,因此(通常)没有相应的setter, 没有混淆的可能, 在这种情况下, get不会传达额外的语义,并且 我在整个库中使用这个无连接命名模式。 我从Java Collection类(以及Java Platform库中的其他类)中得到了一些保证,这些类也违反了JavaBean约定(例如,它们使用size而不是getSize等)。 为了解决这个问题:组件永远不会被用作JavaBean,因为它们不能以这种方式有意义地使用。 另一方面,我不是一个经验丰富的Java用户,我不知道其他Java开发人员对库的期望。 我可以在这里遵循Java平台类的示例,还是被认为是糟糕的风格? 在Java库类中违反get / set约定是否被认为是回想起来的错误? 或者在不适用时忽略JavaBean约定是完全正常的吗? ( Java的Sun代码约定根本没有提到这一点。)

为什么Java类的第一个字母应该是大写的?

为什么Java类的第一个字母应该是大写的? 是否无法运行包含低级类名的程序? 如果有可能,有什么区别?

Java接口命名约定

我在一个Java Web应用程序上工作,它使用Spring进行dependency injection,JMock用于在我们的unit testing中模拟这些依赖项。 目前我们的团队在某一点上,我们在如何命名我们使用的某些界面方面有一些不同的意见。 我们在域中命名具有多个实现的接口没有问题,这很简单。 但是,当谈到我们只有一个实现并且打算将来只有一个实现的接口时,我们遇到了障碍。 我们有这样的接口的原因纯粹是为了模拟,例如,我们有我们在unit testing中模拟的服务和存储库,这些服务将被命名为“DocumentMappingService”或存储库“EmployeeRepository”。 目前,一些人只是在关联的接口名称前加上“I”,即“IDocumentMappingService”和“IEmployeeRepository”。 其他人如上所述命名接口,然后在实现类的接口名称后添加“Impl”。 第三个“派系”认为这两个选项都很差。 查看众所周知的“以测试为导向的面向对象的软件”这样的文献会让人相信前面提到的两个选项都很差,并且接口名称应该明确定义合同和实现类名称应明确说明合同是如何实施的。 我们发现在上面提到的情况下这很难做到。 我希望那里的某个人之前有类似的问题并且有一些建议,哪个选项是最好的,为什么。 此外,如果您认为“I”和“Impl”选项都很差,那么请建议一个特定的替代惯例。

确定在Java中使用哪个动词用于方法名称

我理解命名约定很重要,原因有很多,大多数都与使代码更易读,更容易集成到大型项目等有关。在Java中,大多数约定要求方法名称在lowerCamelCase以动词开头。 我的问题是:如何选择动词来开始方法名称? 为了使这个问题不那么模糊,我经常处于这样一种情况,即我对方法名称的首选是描述输出的名词。 在这些情况下,我通常会在名词的字体中附加通用动词(例如get , generate , calculate等)以符合动词规则。 是否有何时使用哪些指南? 这是一个例子。 我有一个方法,它采用double[] array和一个int k并返回double[] newArray ,它是array的长度k移动平均值,即newArray[i] = (array[i-k+1]+…+array[i])/k用一些捏造使newArray与array长度相同。 我的倾向是将这个方法movingAverage因为它返回的是那个,但是因为它不是以动词开头的。 我应该调用此方法getMovingAverage或generateMovingAverage或calculateMovingAverage还是不重要?

Java命名约定

我的完整变量名是Unique Code,但我希望这个变量是“ucode”-ish。 那么什么是正确的Java命名约定? UCODE UCODE UCODE