如何在 Android Studio 中自动生成 getter 和 setter

Posted

技术标签:

【中文标题】如何在 Android Studio 中自动生成 getter 和 setter【英文标题】:How to automatically generate getters and setters in Android Studio 【发布时间】:2014-07-16 19:50:04 【问题描述】:

android Studio 中是否有用于在给定类中自动生成 getter 和 setter 的快捷方式?

【问题讨论】:

【参考方案1】:

在编辑器中使用 Alt+ Insert for Windows 或 Command+ N for Mac,您可以轻松为类的任何字段生成 getter 和 setter 方法。这与使用菜单栏的效果相同 -> Code -> Generate...

然后使用 shift 或 control 按钮,选择所有需要添加 getter 和 setter 的变量

【讨论】:

对于 Mac 上的用户,它是 control + enter。 是否有可能创建 getter 和 setter,例如 ivar _username,getter 和 setter 是 getUsername 和 setUsername? 在 Mac 上 Control+n 对于java来说它工作正常。但是我在android studio中使用kotlin进行应用程序开发。那么如何像java一样生成getter/setter? 如何为 Kotlin 类生成 getter 和 setter【参考方案2】:

对于 macOS,默认为 +N

右键单击并选择“生成...”以查看当前映射。您可以一步选择多个字段来生成getter/setter。

见http://www.jetbrains.com/idea/webhelp/generating-getters-and-setters.html

【讨论】:

【参考方案3】:

此答案涉及您的问题,但并不完全是答案。 =) 这是我最近发现的一个有趣的库,我想和你分享。


Project Lombok可以为你的类自动生成常用方法,如getter、setter、equals()hashCode()toString()。它用减少样板代码的注释替换它们。要查看使用 Lombok 编写的代码的良好示例,请观看主页上的视频或阅读 this article。

使用 Lombok 进行 Android 开发很容易,并且不会让您的 android 应用程序变得“更重”,因为 Lombok 是一个仅编译时的库。正确configure你的Android项目很重要。

另一个例子:

import lombok.Getter;
import lombok.Setter;

public class Profile 

  @Getter @Setter
  private String username;

  @Getter @Setter
  private String password;


可以使用 Lombok 进行 Android 开发。 Lombok 应该是一个仅编译时的依赖项,否则整个 Lombok 将最终出现在您的 DEX 文件中,从而浪费宝贵的空间。 Gradle sn-p:

dependencies 
    compileOnly "org.projectlombok:lombok:1.16.18"

此外,您可能希望在开发时添加 Lombok IntelliJ plugin 以在您的 IDE 中支持 Lombok 功能。还有基于 Lombok 的 Hrisey 库。简单地说,就是 Lombok + Parcellable 支持。

【讨论】:

不幸的是,Project Lombok 在 Android 库项目中中断。现在不可靠。 @IgorGanapolsky 有什么证据吗? @IgorGanapolsky Project Lombok 在 Android 上运行良好。见setup guide。【参考方案4】:

右键单击Editor,然后选择Source -> Generate Getters and Setters 或按Alt + Shift + S

【讨论】:

这是 Eclipse。他要求使用 Android Studio。【参考方案5】:

以防万一有人在使用 Eclipse

Windows 8.1 操作系统 | Eclipse 空闲月神

声明***变量private String username Eclipse 请在屏幕左侧生成警告单击该警告并显示一些建议,然后选择生成。

【讨论】:

问题是针对Android Studio,而不是eclipse【参考方案6】:

如 here 所述,您还可以自定义 getter/setter 生成以考虑前缀和后缀(例如,m 代表实例变量)。转到File->Settings 并展开Code Style,选择Java,然后在Code Generation 选项卡下添加您的前缀/后缀。

【讨论】:

【参考方案7】:

使用code=>generate=>getter()和setter()对话框,选择所有变量,一次生成所有getter(),setter()方法。

【讨论】:

【参考方案8】:

Android Studio 和 OSx

cmd+n > 生成 > Getter和Setter

Android Studio 和 Windows

Alt + 插入 > 生成 > Getter和Setter

【讨论】:

刚刚在 Windows 上测试过 Alt+Shift+S+R 不起作用,右键单击不包含 Source。可能是自定义设置吗? 我已经修复了 Win 部分! :)【参考方案9】:

您可以使用Android StudioAndroidAccessors 插件来生成不带m 作为方法前缀的getter 和setter

例如:mId; 将生成getId()setId() 而不是getmId()setmId()

【讨论】:

【参考方案10】:

Android Studio 和 Windows:

fn + alt + 插入

【讨论】:

您的图片未正确显示在帖子中,并且您尚未完成图片描述 - 它显示“在此处输入图片描述”。【参考方案11】:

您可以通过以下步骤生成getter和setter:

首先声明变量。 点击键盘上的ALT+Insert,将光标放在变量声明部分 现在选择构造函数并按下键盘上的Ctrl+A 并单击Enter 以创建构造函数。 现在再次将光标放在构造函数右大括号的下一行,单击 ALT+INSERT 并选择 getter 和 setter,然后再次按 CTRL+ A 选择所有变量并点击 Enter

就是这样。编码愉快!

【讨论】:

【参考方案12】:

在 Mac 上使用 Ctrl+Enter 获取选项列表以生成 setter、getter、构造函数等

【讨论】:

【参考方案13】:

另一种有趣的方式

定义后在对象的任意位置输入参数名称,你会看到setter和getter,只需选择并点击回车:)

我尝试使用 Android Studio 2.3

【讨论】:

【参考方案14】: 创建变量 右键单击 选择“生成”,然后选择“Getter and Setter”选项

【讨论】:

kotlin 构造函数的任何快捷方式? Alt + Ins 没有显示生成构造函数选项。 你试过Alt + Enter吗? 对于这种情况,我不知道发生了什么。您是否在 Intellij 论坛中发布了您的问题? 当您找到解决方案时,请在此处分享。【参考方案15】:

将光标定位在变量下->右键->生成->Getter和Setter->选择变量进行get和set

Alt + Insert -> Getter 和 Setter -> 选择变量

【讨论】:

问题是是否可以使用单个快捷方式生成 getter 和 setter,所以在菜单中找不到此选项。 我不明白。 Alt + Insert -> Getter 和 Setter -> 选择变量【参考方案16】:

使用 Alt+ 插入 或右键单击并选择“生成...” 您可以在 Android Studio 中轻松生成 getter 和 setter 或 Override 方法。 这与使用菜单栏 Code -> Generate...

的效果相同

【讨论】:

以上是关于如何在 Android Studio 中自动生成 getter 和 setter的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android Studio VideoView 中自动重播视频

如何在 Android Studio 中自动增加 TextView 的值

如何在android studio中随机生成随机运算符

如何在最新的 android studio 中自动导入缺失的类?

如何在 android studio 1.0 中自动添加多个方法?

如何通过快捷方式在Android Studio中自动生成try catch代码块?