当前位置: 首页 > 面试题库 >

Java中缺少属性语法

万修为
2023-03-14
问题内容

C#具有用于声明和使用属性的语法。例如,可以声明一个简单的属性,如下所示:

public int Size { get; set; }

也可以在属性中添加一些逻辑,如下所示:

public string SizeHex
{
    get
    {
        return String.Format("{0:X}", Size);
    }
    set
    {
        Size = int.Parse(value, NumberStyles.HexNumber);
    }
}

无论是否具有逻辑,属性的使用方式与字段相同:

int fileSize = myFile.Size;

我对Java或C#都不陌生-我已经使用了很多东西,而且我总是想念Java中使用属性语法。我在这个问题中读到“在Java7中或将来几乎不可能添加属性支持”,但是坦率地说,我发现在讨论,论坛,博客,评论和JSR中需要挖掘太多的工作为什么。

所以我的问题是:谁能总结一下为什么Java不太可能获得属性语法?

  • 是因为与其他可能的改进相比,它还不够重要吗?
  • 是否存在技术限制(例如与JVM相关的限制)?
  • 这是政治问题吗?(例如: “我使用Java进行编码已有50年了,我说我们不需要steenkin’属性!”
  • 这是骑车棚的情况吗?

问题答案:

我认为这只是Java对待事物的一般哲学。属性有些“神奇”,而Java的哲学是保持核心语言尽可能简单,避免像瘟疫这样的魔术。这使Java成为几乎所有程序员都可以理解的
通用语言
。这也使得推理任意孤立的代码段的行为非常容易,并且可以提供更好的工具支持。不利的一面是它使语言更加冗长,表达能力更差。这不一定是设计语言的正确方法或错误方法,而只是权衡取舍。



 类似资料:
  • 我正在VSCode中使用OpenAPI 3编写一个API文档,扩展为OpenAPI(Swagger)Editor v4.9.1。直到今天它都运行良好-突然我的文档在所有模式声明中充满了“属性”错误。错误是:

  • 反应组分 如何在组件中声明输入组件?

  • 问题内容: 我在Java语言环境中发现了许多缺少的国家/地区-如果我打印出可用语言环境的列表, 我缺少许多国家,包括尼日利亚,伊朗,吉尔吉斯斯坦和巴基斯坦。任何人都可以对此进行说明,或者是否有更好(更全面)的方法来获取Java国家列表? 1.6.0_16-b01 问题答案: 世界上的国家和地区之间没有一对一的映射。语言环境指定区域。它们旨在标记诸如语言多样性之类的东西。只是一个明确的例子:印度,斯

  • 我正在使用Hibernate5.4.15.fianl版本连接到DB2数据库。创建SessionWorks时,我收到以下错误: 使用配置类对象配置属性, 我尝试了在网络上找到的所有可能的组合来获取会话工厂对象 1。从上面的配置对象: 每个调用直接或间接到达Hibernate类:SessionFactoryImpl构造函数行:259 -- getProperties()方法不是此类的一部分,并获取异常

  • 编辑问题以包括所需行为、特定问题或错误以及再现问题所需的最短代码。这将帮助其他人回答这个问题。 我正在创建一些飞行物体数组的 Java 代码,它们都有一个属性价格(双倍)。我对继承有点陌生,这是我第一次使用超级关键字。当我在数组中创建一个子类对象 Airplane 时,价格特征似乎没有正确通过构造函数。 以下是我的FlyingObject构造函数: 公共类 FlyingObject { 这是我的飞

  • 这是我的。工作文件 作业失败,出现以下错误: 我用的是Azkaban 2.5和cdh5