Java bean、注释:它们的作用是什么?他们如何帮助我?

2023-12-30

到目前为止,我的理解如下:

Java bean 只是为了帮助其他事物(视觉事物?)与您的代码交互。我认为这主要是针对 UI 的东西,因为视觉上的设计更容易。将 Java bean 用于非 UI 事务是一种不好的做法吗?

Java bean 具有 getter 和 setter 方法(不好的 OOP 实践)并且是可序列化的。

就注释而言,我认为用户定义的注释不提供任何功能。一些注释(例如@depretiated)会引发编译器警告。用户定义的注释可以以某种方式做到这一点吗?用户定义的注释除了文档之外还有其他用途吗?我该如何使用它们? eclipse 或 intellij 是否有一些涉及注释的功能?

有一个美好的周末。

Jake

更新:这开始变得更有意义了。有人能给我举个例子,说明什么时候适合使用 java bean 格式,什么时候不适合吗?

我还在某处读到,多个类可以是一个 bean,它是一种打包类的方式。

只是为了澄清一件事。我 95% 确信作为一个 java bean 有点像作为一个单例(或其他模式)。它不会影响编译器的操作。


注释是一种形式声明式编程 http://en.wikipedia.org/wiki/Declarative_programming。首先,您必须先了解声明性编程的好处,然后才能清楚注释的实用性。本质上,您可以简单地通过“声明”代码块具有某种特征来向它添加功能或行为。这与实际编写一系列语句来应用或设置相同的行为形成对比。

The JPA注释 http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html是使用注释添加功能的示例。我不知道“用户创建”的例子在我的脑海中,但 JPA 注释的实现方式与您或我的实现方式完全相同。

就 Java Bean 而言,它们最初的用途是用于 GUI 编程。使用 JavaBeans 的“简单”方法是使用命名约定来定义 bean 的“属性”——即 getter 和 setter。据我所知,JavaBeans 最初是基于 GUI 的表单和 UI 编辑的实现。因此,getter 和 setter 使 UI 软件可以轻松发现用户可查看或可编辑的属性。使用 Bean 描述符,您可以稍微改变描述符的工作方式......

它们之所以坚持至今,是因为它们提供了一种事实上的方法来检查对象是否具有公开暴露的属性。在 GUI 之外使用 JavaBeans 是一种不错的形式。 Java 中的偏好似乎是使用无参数构造函数,然后注入依赖项,而不是使用 RAII 风格的编程(并不是说它严格可用)...

这实际上很常见,特别是如果对象将由不先验知道它将要操作的对象的代码来操作(看看休眠 http://www.hibernate.org/一个很好的例子)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java bean、注释:它们的作用是什么?他们如何帮助我? 的相关文章

随机推荐

  • 关于[NSNull null]的一些困惑,nil [重复]

    这个问题在这里已经有答案了 可能的重复 NSNull null 和 nil 有什么区别 https stackoverflow com questions 836601 whats the difference between nsnull
  • str_replace() 与关联数组

    您可以将数组与 str replace 一起使用 array from array from1 from2 array to array to1 to2 text str replace array from array to text 但
  • 无法在 Android 上的 WebView 中下载 Blob 文件类型

    我想从 webview 下载文件 但每次都会出错 只能下载 HTTP HTTPS URI blob https https 我在我的代码中使用这个 ngOnInit let webview WebView this webViewRef n
  • CPython 中的模块加载是如何工作的?

    CPython 中的模块加载在幕后是如何工作的 特别是 用 C 语言编写的扩展的动态加载是如何工作的 我可以在哪里了解这方面的信息 我发现源代码本身相当令人难以承受 我可以看到那个值得信赖的人dlopen 和朋友在支持它的系统上使用 但没有
  • $string.Substring 索引/长度异常

    我正在执行以下操作来尝试从字符串中获取最后一个字符 在本例中为 0 string HKEY LOCAL MACHINE SYSTEM CurrentControlSet services hid Parameters 0 parameter
  • sprintf_s 的缓冲区太小

    以下代码会导致错误并终止我的应用程序 这是有道理的 因为缓冲区只有 10 个字节长 而文本有 22 个字节长 缓冲区溢出 char buffer 10 int length sprintf s buffer 10 1234567890 12
  • VS Code 可以使用外部程序打开文件吗?

    有没有办法设置 VS Code 以便在嵌入式文件资源管理器中双击 docx 文件会导致在 Microsoft Word 中打开该文件 我已经习惯了 PyCharm 但已经迁移到 VS Code 我习惯于创建 Word 文档文件 docx 然
  • Meteor - 仅发布集合的计数

    是否可以只向用户发布集合的计数 我想在主页上显示总计数 但不将所有数据传递给用户 这是我尝试过的 但它不起作用 Meteor publish task count function return Tasks find count this
  • 在本地主机上测试 facebook 连接

    我正在尝试在我的本地主机上测试 facebook 连接 在 facebook 开发者页面的应用程序设置中 我尝试将 使用 facebook 登录的网站 更改为http localsitename 8888但我收到一个错误 Error Sit
  • 将无功输出存储在向量中 - Shiny R

    我正在致力于构建一个闪亮的应用程序 我使用了一些过滤器并渲染了一个数据框 并且数据框根据用户输入动态变化 但我无法将数据框中的特定列值存储到向量中 我需要每次将无功输出存储到向量中 以便稍后可以再次使用这些值 这里的值存储在text vec
  • 如何检索嵌套的 Set?

    我是否缺少注释或者这是休眠检索的限制 实体 class A Long id Set b b ManyToMany fetch FetchType EAGER JoinTable name A B joinColumns JoinColumn
  • 无法更改自定义评级栏的大小

    我正在尝试为我的 Android 应用程序制作自定义评级栏 其中我可以更改评级栏的默认大小和颜色 为此 我编写了样式自定义评级栏像这样 But the size is not changed rather it
  • 将 Pandas Dataframe 转换为自定义嵌套 JSON

    我必须将 Pandas Dataframe 转换为嵌套 json 我尝试使用 to json 但它将整个数据帧转换为键值对 不知道如何转换这样的嵌套 json 非常感谢任何帮助 我的数据框 df pd DataFrame id 1 2 3
  • pydev importerror:没有名为 thread 的模块,pydev 升级后调试不再起作用

    我的 Eclipse 3 6 PyDev 设置刚刚将 pydev 升级到 1 6 0 2010071813 并且调试不再有效 我的默认 python 解释器是 3 1 尽管我怀疑这是否重要 在 Eclipse 升级 pydev 之前 它运行
  • 使用 pxssh 时无法为 pexpect 导入名称“spawn”

    这是我试图运行的代码 from pexpect import pxssh s pxssh pxssh if not s login myip myusername mypassword print SSH session failed on
  • 如何在 Xcode 4 中调试“Xcode CodeSign 错误:权利文件 Entitlements.plist 丢失”?

    当我尝试 CMD I 配置文件 设备上的应用程序时 Xcode 会引发此错误 跑步就好 仅分析不起作用并给出此错误 Entitlements plist 的路径是伪造的 并且指向不再存在的位置 我不想进行临时分发 只需在设备上分析我的应用程
  • xargs 输出缓冲 -P 并行

    我有一个 bash 函数 我使用 xargs P 并行调用 如下所示 echo list xargs n 1 P 24 I bash l c myAwesomeShellFunction 一切正常 但输出由于明显的原因而混乱 无缓冲 试图找
  • threads.get() 和 messages.get() 按什么顺序返回项目列表?

    似乎没有记录threads get 和messages get 如何对它们返回的结果进行排序 顺序是按日期 时间降序排列吗 通过谷歌来到这里 因为我自己正在寻找这个 经过更多挖掘后 似乎messages list根据返回消息historyI
  • 为变量创建本地别名是否会像循环一样加快列表理解速度?

    名称查找在 Python 中相对昂贵 因此对于大型循环 您可以通过更改以下内容来获得性能优势 for element in my list do something element 类似的东西 ds do something for ele
  • Java bean、注释:它们的作用是什么?他们如何帮助我?

    到目前为止 我的理解如下 Java bean 只是为了帮助其他事物 视觉事物 与您的代码交互 我认为这主要是针对 UI 的东西 因为视觉上的设计更容易 将 Java bean 用于非 UI 事务是一种不好的做法吗 Java bean 具有